从SAML令牌中读取SAML属性
我正在从XML文件加载SAML令牌。
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 tokens = new List(); tokens.Add(new X509SecurityToken(cert)); SecurityTokenResolver outOfBandTokenResolver = SecurityTokenResolver.CreateDefaultSecurityTokenResolver(new ReadOnlyCollection(tokens), true); SecurityToken securityToken = WSSecurityTokenSerializer.DefaultInstance.ReadToken(reader, outOfBandTokenResolver); SamlSecurityToken deserializedSaml = securityToken as SamlSecurityToken;
如何从deserializedSaml中读取SAML属性?
我需要属性的字符串值。
这不行吗?
foreach (SamlStatement statement in deserializedSaml.Assertion.Statements) { SamlAttributeStatement attributeStatement = statement as SamlAttributeStatement; if (null != attributeStatement) { foreach (SamlAttribute attribute in attributeStatement.Attributes) { DoWhateverYouLikeWith(attribute); } } }