从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); } } }