我可以使用以下代码获取所有声明值:
ClaimsPrincipal cp = Thread.CurrentPrincipal as ClaimsPrincipal;
ClaimsIdentity cid = (ClaimsIdentity)cp.Identity;
foreach (Claim claim in cid.Claims)
{
...
}
但我希望能够读取整个令牌,因为我怀疑我需要的一些信息是在令牌的非属性部分。 我已经阅读了安全令牌可视化控件,但它不是我可以使用的东西,因为我不希望最终用户看到控件输出,但想通过电子邮件发送原始令牌xml。
答案 0 :(得分:2)
首先,您必须配置WIF以保存“BootstrapContext”:
INSERT INTO TABLENAME (DATE) VALUES (STR_TO_DATE('01/01/2010','%d/%m/%Y'));
然后您可以在“ClaimsIdentity”
上使用属性“BootstrapContext”<system.identityModel>
<identityConfiguration saveBootstrapContext="true">
使用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/