1

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

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

字符串别名 = ((MicrosoftAdfsProxyRP.MicrosoftPrincipal)HttpContext.Current.User).Alias;

Response.Write(别名);

4

3 回答 3

2

查看如何:在 ASP.NET 页面中访问声明

以防万一链接消失,关键是:

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>";
    }
}
于 2011-02-28T00:27:34.370 回答
2

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

IClaimsPrincipal claimPr = (IClaimsPrincipal)(HttpContext.Current.User) 从声明原则中您可以通过 IClaimsIdentity 获取 ClaimsIdentityCollection。

从 claimPr.Identifies 中获取 IClaimsIdentity。

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

于 2010-03-28T05:45:33.227 回答
2

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

于 2010-03-30T03:46:00.587 回答