Ich versuche, eine Beispielanwendung von onelogin.com C# Beispiel zu verwenden, aber es scheint ziemlich buggy zu sein. Mein letztes verbleibendes Problem versucht, Sachen wie die Benutzer-ID von der SAML Antwort-XML zu analysieren. Ich kann nicht scheinen kein Beispiel C# Code für .NET in SAML gebaut zu finden, damit ich versuche, es zu tun rohen XML-Tools, aber ich noch nie ein Spiel für die Benutzer-ID erhalten:Kann User ID von SAML 2.0 Antwort XML nicht analysieren
public string GetNameID()
{
XmlNamespaceManager manager = new XmlNamespaceManager(xmlDoc.NameTable);
manager.AddNamespace("ds", SignedXml.XmlDsigNamespaceUrl);
manager.AddNamespace("saml", "urn:oasis:names:tc:SAML:2.0:assertion");
manager.AddNamespace("samlp", "urn:oasis:names:tc:SAML:2.0:protocol");
XmlNode node = xmlDoc.SelectSingleNode("saml:Assertion/saml:Subject/saml:NameID", manager);
// node is now null!
return node.InnerText; // throws exception
}
Hier ist mein (stark gekürzt) XML, die alle irrelevanten Knoten hatte/sections entfernt:
<trust:RequestSecurityTokenResponseCollection xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
<trust:RequestSecurityTokenResponse>
<trust:RequestedSecurityToken>
<saml:Assertion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Version="2.0" ID="pfxefe742da-7d6f-1f2a-85c6-0ab28c701748" IssueInstant="2016-06-14T12:14:56Z" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">[email protected]</saml:NameID>
</saml:Subject>
</saml:Assertion>
</trust:RequestedSecurityToken>
</trust:RequestSecurityTokenResponse>
</trust:RequestSecurityTokenResponseCollection>
Das ist keine SAML2-Protokollantwort. Es ist eine WS-Trust-Antwort, die eine SAML2-Assertion enthält. –
@AndersAbel Danke - Ich bin neu und wusste nicht, warum ich eine andere Art von Reaktion auf das sah, was ich in Online-Beispielen sah. Wie Sie wissen, habe ich jetzt Ihre Bibliothek und Ihren Testserver verwendet, so dass dies jetzt kein Problem mehr darstellt. – NickG