Page History
...
Seal.NET target'er .NET Standard 2.0.
Migrering til version 5.0.0 fra ældre version
Generelt
app.config bliver erstattet af appsettings.json og bruges kun til at sætte enkelte parametre:
{
"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.
Det der før blev konfigureret i app.config, konfigureres nu i kode.
5.0.0 kræver ikke nær så meget konfiguration som ældre Seal.NET versioner, da meget konfiguration nu håndteres internt af biblioteket.
Det medfører derudover, at det nu fremgår af metode-signaturen hvis man skal tage stilling til en konfiguration.
Der er tilfælde hvor man måske ønsker at konfigurere en clientVia endpointbehavior på en Web Service Reference som man har tilføjet (ud fra en WSDL fil).
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:
client.Endpoint.EndpointBehaviors.Add(new ViaBehavior(new Uri("<via URI>")));
SosiGwCardClient er fjernet, da Sosi2SamlStsClient opfylder samme rolle.
SealCard er fjernet, og bliver fuldt erstattet af IdCard.
Ændringer til SBO/Sosi2OioSaml
Seal2SamlStsClient er omdøbt til Sosi2SamlStsClient.
Metoderne 'ExchangeAssertion' og 'ExchangeAssertionViaGW' i Sosi2SamlStsClient er slået sammen til én static metode der hedder 'ExchangeAssertion':
I det gamle Seal.NET bliver denne kode:
var assertion = IdCard.GetAssertion<Assertion>();
using (var stsClient = new Seal2SamlStsClient("Seal2EncSamlViaGW"))
using (new OperationContextScope((IContextChannel)stsClient.Channel.Channel))
{
var sealCardCallingGw = SealCard.Create(assertion);
OperationContext.Current.OutgoingMessageHeaders.Add(new SealCardMessageHeader(sealCardCallingGw));
var oioToken = stsClient.ExchangeAssertionViaGW("http://sosi.dk") as GenericXmlSecurityToken;
}
Til
Sosi2SamlStsClient.ExchangeAssertion(clientCertificate, "<audience>", uri, idCard).XAssertion;
Den findes også i en udgave der ikke tager et clientCertificate.
Metoderne er slået sammen fordi de alle udførte det samme, men gjorde det på forskellig vis:
'ExchangeAssertion' tog en assertion direkte i parameterlisten, mens 'ExchangeAssertionViaGW' ikke tog den direkte i parameterlisten,
men i stedet blev assertion sat ind i 'OperationContext.Current.OutgoingMessageHeaders' inden 'ExchangeAssertionViaGW' blev kaldt.
Ændringer til OioSaml2Sosi
Saml2SosiStsClient.ExchangeAssertion er nu en static metode:
I det gamle Seal.NET bliver denne kode:
using (var stsClient = new Saml2SosiStsClient("sts_OIOSaml2Sosi"))
{
stsClient.ChannelFactory.Credentials.ClientCertificate.Certificate = Global.StatensSerumInstitutFoces;
var healthContextAssertion = SealUtilities.MakeHealthContextAssertion(
"Test Sundhed.dk",
Global.StatensSerumInstitutFoces.SubjectName.Name,
"Sygdom.dk", userAuthorizationCode);
return stsClient.ExchangeAssertion(nemidAssertion, healthContextAssertion, "http://sosi.dk");
}
Til
Saml2SosiStsClient.ExchangeAssertion(Global.StatensSerumInstitutFoces, new Uri("<URL der før var i app.config>"), nemidAssertion, userAuthorizationCode);
Hvor nemidAssertion er af typen 'OioSamlAssertion' i stedet for 'Saml2Assertion'.
En 'OioSasmlAssertion' kan laves ud af et XML DOM objekt på følgende måde:
var exampleXmlDom = new XDocument().Root;
var ast = new dk.nsi.seal.Model.OioSamlAssertion(exampleXmlDom);
Seal.NET API
Designvalg
Seal.NET target'er .NET Standard 2.0, så den er kompatibel med .NET 5+ og .NET Core, samt .NET Framework projekter.
...