Page History
...
app.config er erstattet af appsettings.json og bruges kun til at sætte enkelte parametre:
Code Block language js { "CheckTrust": true, "CheckDate": true, "CheckCrl": false, "sosi:dgws.version": "1.0.1", "sosi:issuer": "TheSOSILibrary", "credentialVault:alias": "SOSI:ALIAS_SYSTEM" }
Værdierne her er også default-værdierne, hvis en parameter eller hele appsettings-filen udelades.
Førhen var der ikke overensstemmelse mellem hvad standardværdierne var angivet til i dokumentationen og i koden.
Koden er ændret, så den nu stemmer overens med dokumentationen.Generelt for .NET Standard og WCF gælder det, at det der før blev konfigureret i app.config, nu konfigureres i kode.
Her er et eksempel på en klient, NtsWSProviderClient, der er genereret ud fra en WCF service reference, som konfigureres i kode, frem for gennem app.config:
Code Block language c# var binding = new CustomBinding(); binding.Elements.Add(new TextMessageEncodingBindingElement(MessageVersion.Soap11WSAddressingAugust2004, Encoding.UTF8)); binding.Elements.Add(new HttpTransportBindingElement()); var client = new NSTWsProvider.NtsWSProviderClient(binding, new EndpointAddress("https://test1-cnsp.ekstern-test.nspop.dk:8443/nts/service")); client.Endpoint.EndpointBehaviors.Add(new SealEndpointBehavior()); client.Endpoint.EndpointBehaviors.Add(new ViaBehavior(new Uri("http://test1.ekstern-test.nspop.dk:8080/sosigw/proxy/soap-request"))); var dgwsHeader = new Header() { SecurityLevel = 4, SecurityLevelSpecified = true, Linking = new Linking { MessageID = Guid.NewGuid().ToString("D") } }; using (new OperationContextScope(client.InnerChannel)) { // Adding seal-security and dgws-header soap header OperationContext.Current.OutgoingMessageHeaders.Add(IdCardHeader(idCard)); OperationContext.Current.OutgoingMessageHeaders.Add(XmlHeader(dgwsHeader)); // Throws Exception if not succesful. return client.invokeAsync("test"); }
Der er tilfælde hvor man måske ønsker at konfigurere en clientVia endpointbehavior på en Web Service Reference som man har tilføjet.
Det blev før gjort i app.config, men da denne ikke længere findes, er der lavet en endpointbehavior klasse som hedder 'ViaBehavior'.
Den bruges som alle andre IEndPointBehavior-klasser:Code Block language c# client.Endpoint.EndpointBehaviors.Add(new ViaBehavior(new Uri("<via URI>")));
Da app.config ikke længere findes, fremgår det nu af metode-signaturen for Sosi2SamlStsClient og Saml2SosiStsClient, hvilke konfigurationsmuligheder der er til kaldene.
AbstractCrendentialVault, GenericCertStoreCredentialVault og GenericCredentialVault er fjernet.
Man kan enten give certifikatet direkte til metoder som skal bruge et certifikat, eller læse det ind fra et certificate store med:
Code Block language c# new dk.nsi.seal.Vault.ThumbprintCertStoreCredentialVault(certThumbprint).GetSystemCredentials();
Internt bruger ThumbprintCertStoreCredentialVault X509Store klassen til at loade et certifikatet fra et certificate store.
Man kan også implementere sin egen klasse til det, ved at arve fra dk.nsi.seal.Vault.ICredentialVault.
Essentielt er ICredentialVault bare en måde at give et certifikat til en metode.
- SealCard er fjernet, og fuldt erstattet af IdCard.
DgwsHeader er fjernet, og DgwsMessageHeader er omdøbt til XmlMessageHeader, da den ikke gør noget DGWS specifikt, men tager noget XML og indsætter det som Header content, når den tilføjes til WCF OutgoingMessageHeaders.
Den laves nu med en static metode 'XmlMessageHeader.XmlHeader', som direkte tager den værdi der før blev givet til DgwsHeader constructor. Se XmlMessageHeader.
- IdCardMessageHeader laves nu med en static constructor IdCardMessageHeader.IdCardHeader.
- SealSigningEndpointBehavior tager nu ClientCredentials direkte i constructor, i stedet for at den specificeres gennem app.config hvor den blev givet til SealSigningEndpointBehavior gennem AddBindingParameters.
- Create-metoder i SOSIFactory er nu static.
- ICredentialVault-argument er fjernet fra 'SignatureUtil.Validate', da den ikke blev brugt til noget.
- SosiFactory.GetCredentialVault er omdøbt til GetCertificate, og returner nu X509Certificate2.
- 'dk.nsi.seal.SealCardMessageHeader' er erstattet af 'dk.nsi.seal.MessageHeaders.IdCardMessageHeader'.
Ændringer til Sosi2OioSaml
...