如何访问saml令牌的原始xml?

时间:2017-10-11 19:57:14

标签: c# saml wif ws-federation

我可以使用以下代码获取所有声明值:

ClaimsPrincipal cp = Thread.CurrentPrincipal as ClaimsPrincipal;            
ClaimsIdentity cid = (ClaimsIdentity)cp.Identity;

foreach (Claim claim in cid.Claims)
{
   ...
}

但我希望能够读取整个令牌,因为我怀疑我需要的一些信息是在令牌的非属性部分。 我已经阅读了安全令牌可视化控件,但它不是我可以使用的东西,因为我不希望最终用户看到控件输出,但想通过电子邮件发送原始令牌xml。

1 个答案:

答案 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.security.claims.claimsidentity.bootstrapcontext(v=vs.110).aspx

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/