Page History
...
Seal.NET target'er .NET Standard 2.0, så den er kompatibel med .NET 5+ og .NET Core, samt .NET Framework projekter.
Migrering til version 5.0.0 fra ældre
...
versionvar response = client.getPersonInformationAsync(security, header, getPersonInformation);
5.0.0 skifter target til .NET Standard 2.0, som medførerer API ændringer. Derudover er der lavet forsimplinger og oprydning af API'et.
...
I klassen SosiGwTest er der tests af kald til SOSI Gateway. Her er der både test af kald mod createIdCardFromBST og requestIdCardDigestForSigning.
Fejlfinding
Invalid ID-kort ved kald til service
Denne fejl ses hvis man anvender en klient der er genereret ud fra WSDL som indeholder security og ID-kort. Problemet opstår fordi klienten laver om på namespaces i assertion, som gør signaturen invalid.
Løsningen er i stedet at anvende 'IdCardMessageHeader' og evt. 'XmlMessageHeader'.
Her vises et eksempel med en klient genereret til FMK:
Koden der fejler:
| Code Block | ||
|---|---|---|
| ||
var security = new Security
{
id = Guid.NewGuid().ToString("D"),
Timestamp = new FmkClient.Timestamp
{
Created = FiveMinutesAgoUtc().ToLocalTime()
},
Assertion = idc.GetAssertion<AssertionType>() // Problemet opstår når denne Assertion bliver serialiseret i kaldet til getPersonInformation nedenunder
};
var response = client.getPersonInformationAsync(security, header, getPersonInformation); // Fejler |
Laves om til:
| Code Block |
|---|
using (new OperationContextScope(client.InnerChannel))
{
OperationContext.Current.OutgoingMessageHeaders.Add(IdCardHeader(idc));
OperationContext.Current.OutgoingMessageHeaders.Add(XmlHeader(header));
var response = client.getPersonInformationAsync(null, null, new getPersonInformation);
} |
Hvis der findes en udgave af WSDL som ikke definerer security og ID-kort, kan man undgå null. Alternativt kan man selv lave et overload der ikke tager argumenterne, og selv sætter null i metoden.
Referencer
SAML2.0 https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security
...