I am loading SAML Token from XML file.
string certificatePath = @"D:\Projects\SAMLDemo\Server.pfx";
X509Certificate2 cert = new X509Certificate2(certificatePath, "shani");
string samlFilePath = @"D:\Projects\SAMLDemo\saml.xml";
XmlReader reader = XmlReader.Create(samlFilePath);
List<SecurityToken> tokens = new List<SecurityToken>();
tokens.Add(new X509SecurityToken(cert));
SecurityTokenResolver outOfBandTokenResolver = SecurityTokenResolver.CreateDefaultSecurityTokenResolver(new ReadOnlyCollection<SecurityToken>(tokens), true);
SecurityToken securityToken = WSSecurityTokenSerializer.DefaultInstance.ReadToken(reader, outOfBandTokenResolver);
SamlSecurityToken deserializedSaml = securityToken as SamlSecurityToken;
How can I read the SAML attributes from deserializedSaml ?
I need string values for the attributes.
The SAML token is signed with a certificate associated with the security token service and contains a proof key encrypted for the target service. The client also receives a copy of the proof key.
An attribute is a characteristic or trait of an entity that describes the entity. It is a name:value pair. The attributes included in the SAML assertion correspond to certain attributes of the service provider to: Convey user information from Verify to the service provider .
Doesn't this work?
foreach (SamlStatement statement in deserializedSaml.Assertion.Statements)
{
SamlAttributeStatement attributeStatement = statement as SamlAttributeStatement;
if (null != attributeStatement)
{
foreach (SamlAttribute attribute in attributeStatement.Attributes)
{
DoWhateverYouLikeWith(attribute);
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With