如何使用ADFS获取用户的其他声明?

时间:2010-03-28 05:23:53

标签: dotnetopenauth adfs2.0

我能够使用ADFS对用户进行身份验证,并使用以下语句成功获取用户别名。从一段时间以来,我一直在寻找获得经过身份验证的用户的其他声明的方法,如电子邮件,姓名,角色,用户名等。

对此有任何帮助将不胜感激。

string alias =((MicrosoftAdfsProxyRP.MicrosoftPrincipal)HttpContext.Current.User).Alias;

Response.Write(别名);

3 个答案:

答案 0 :(得分:2)

获得其他索赔的索赔方式如下。

IClaimsPrincipal claimsPr =(IClaimsPrincipal)(HttpContext.Current.User) 根据声明原则,您可以通过IClaimsIdentity获取ClaimsIdentityCollection。

从claimPr.Identifies获取IClaimsIdentity。

然后使用Claims属性检查IClaimsIdentity中的所有声明。

答案 1 :(得分:2)

您向全世界询问有关内部Microsoft服务和界面的问题。尝试通过电子邮件发送msftadfsproxydisc别名与您的问题。

答案 2 :(得分:2)

查看How to: Access Claims in an ASP.NET Page

万一链接消失,关键是:

void Page_Load(object sender, EventArgs e)
{
    // Cast the Thread.CurrentPrincipal
    IClaimsPrincipal icp = Thread.CurrentPrincipal as IClaimsPrincipal;

    // Access IClaimsIdentity which contains claims
    IClaimsIdentity claimsIdentity = (IClaimsIdentity)icp.Identity;

    // Access claims
    foreach(Claim claim in claimsIdentity.Claims)
    {
      Response.Write(claim.ClaimType) + "<BR>";
      Response.Write(claim.Value) + "<BR>";
      Response.Write(claim.ValueType) + "<BR>";
    }
}