如何访问 saml 令牌的原始 xml?
how can i access the raw xml of the saml token?
我可以使用如下代码获取所有声明值:
ClaimsPrincipal cp = Thread.CurrentPrincipal as ClaimsPrincipal;
ClaimsIdentity cid = (ClaimsIdentity)cp.Identity;
foreach (Claim claim in cid.Claims)
{
...
}
但我希望能够读取整个令牌,因为我怀疑我需要的一些信息位于令牌的非属性部分。
我已经阅读了有关安全令牌可视化控件的信息,但我无法使用它,因为我不希望最终用户看到控件输出,但想通过电子邮件发送原始令牌 xml。
首先你必须配置WIF来保存"BootstrapContext":
<system.identityModel>
<identityConfiguration saveBootstrapContext="true">
然后你可以在"ClaimsIdentity"
上使用属性"BootstrapContext"
ClaimsPrincipal cp = Thread.CurrentPrincipal as ClaimsPrincipal;
ClaimsIdentity cid = (ClaimsIdentity)cp.Identity;
BootstrapContext bc = cid.BootstrapContext as BootstrapContext;
并在 BootstrapContext 上使用 "Token" 属性 获取 saml 令牌的原始 xml。
另请参阅:
https://msdn.microsoft.com/en-us/library/system.identitymodel.tokens.bootstrapcontext(v=vs.110).aspx
http://www.cloudidentity.com/blog/2012/11/30/using-the-bootstrapcontext-property-in-net-4-5-2/
我可以使用如下代码获取所有声明值:
ClaimsPrincipal cp = Thread.CurrentPrincipal as ClaimsPrincipal;
ClaimsIdentity cid = (ClaimsIdentity)cp.Identity;
foreach (Claim claim in cid.Claims)
{
...
}
但我希望能够读取整个令牌,因为我怀疑我需要的一些信息位于令牌的非属性部分。 我已经阅读了有关安全令牌可视化控件的信息,但我无法使用它,因为我不希望最终用户看到控件输出,但想通过电子邮件发送原始令牌 xml。
首先你必须配置WIF来保存"BootstrapContext":
<system.identityModel>
<identityConfiguration saveBootstrapContext="true">
然后你可以在"ClaimsIdentity"
上使用属性"BootstrapContext"ClaimsPrincipal cp = Thread.CurrentPrincipal as ClaimsPrincipal;
ClaimsIdentity cid = (ClaimsIdentity)cp.Identity;
BootstrapContext bc = cid.BootstrapContext as BootstrapContext;
并在 BootstrapContext 上使用 "Token" 属性 获取 saml 令牌的原始 xml。
另请参阅:
https://msdn.microsoft.com/en-us/library/system.identitymodel.tokens.bootstrapcontext(v=vs.110).aspx
http://www.cloudidentity.com/blog/2012/11/30/using-the-bootstrapcontext-property-in-net-4-5-2/