C# 如何访问saml令牌的原始xml?
我可以通过如下代码获得所有索赔值:C# 如何访问saml令牌的原始xml?,c#,saml,wif,ws-federation,C#,Saml,Wif,Ws Federation,我可以通过如下代码获得所有索赔值: ClaimsPrincipal cp = Thread.CurrentPrincipal as ClaimsPrincipal; ClaimsIdentity cid = (ClaimsIdentity)cp.Identity; foreach (Claim claim in cid.Claims) { ... } 但我希望能够读取整个令牌,因为我怀疑令牌的非属性部分中有我需要的一些信息。 我已经阅读了有关security t
ClaimsPrincipal cp = Thread.CurrentPrincipal as ClaimsPrincipal;
ClaimsIdentity cid = (ClaimsIdentity)cp.Identity;
foreach (Claim claim in cid.Claims)
{
...
}
但我希望能够读取整个令牌,因为我怀疑令牌的非属性部分中有我需要的一些信息。
我已经阅读了有关security token visualizer控件的内容,但我不能使用它,因为我不希望最终用户看到控件输出,而是希望通过电子邮件发送原始令牌xml。首先必须配置WIF以保存“BootstrapContext”: 并使用BootstrapContext上的“Token”属性获取saml令牌的原始xml 另见:
首先,您必须配置WIF以保存“BootstrapContext”: 并使用BootstrapContext上的“Token”属性获取saml令牌的原始xml 另见:
我已经接受了答案。我获得BootstrapContext引用,但.Token属性为null。.SecurityToken属性看起来不错,但我需要.Token属性的原始文本。有什么建议吗?解决了!SecurityToken bootstrapToken=bc.SecurityToken;使用(var wrtr=XmlWriter.Create(sbToken)){new Saml2SecurityTokenHandler(new SamlSecurityTokenRequirement()).WriteToken(wrtr,bootstrapToken);}xml=sbToken.ToString();我已经接受了答案。我获得BootstrapContext引用,但.Token属性为null。.SecurityToken属性看起来不错,但我需要.Token属性的原始文本。有什么建议吗?解决了!SecurityToken bootstrapToken=bc.SecurityToken;使用(var wrtr=XmlWriter.Create(sbToken)){new Saml2SecurityTokenHandler(new SamlSecurityTokenRequirement()).WriteToken(wrtr,bootstrapToken);}xml=sbToken.ToString();
<system.identityModel>
<identityConfiguration saveBootstrapContext="true">
ClaimsPrincipal cp = Thread.CurrentPrincipal as ClaimsPrincipal;
ClaimsIdentity cid = (ClaimsIdentity)cp.Identity;
BootstrapContext bc = cid.BootstrapContext as BootstrapContext;