我能够使用 ADFS 对用户进行身份验证,并使用以下语句成功获取用户别名。一段时间以来,我一直在寻找一种方法来获取经过身份验证的用户的其他声明,例如电子邮件、姓名、角色、用户名等。
对此的任何帮助将不胜感激。
字符串别名 = ((MicrosoftAdfsProxyRP.MicrosoftPrincipal)HttpContext.Current.User).Alias;
Response.Write(别名);
我能够使用 ADFS 对用户进行身份验证,并使用以下语句成功获取用户别名。一段时间以来,我一直在寻找一种方法来获取经过身份验证的用户的其他声明,例如电子邮件、姓名、角色、用户名等。
对此的任何帮助将不胜感激。
字符串别名 = ((MicrosoftAdfsProxyRP.MicrosoftPrincipal)HttpContext.Current.User).Alias;
Response.Write(别名);
以防万一链接消失,关键是:
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>";
}
}
获取其他索赔的索赔方式如下。
IClaimsPrincipal claimPr = (IClaimsPrincipal)(HttpContext.Current.User) 从声明原则中您可以通过 IClaimsIdentity 获取 ClaimsIdentityCollection。
从 claimPr.Identifies 中获取 IClaimsIdentity。
然后使用 Claims 属性检查 IClaimsIdentity 中存在的所有声明。
您正在向全世界询问有关 Microsoft 内部服务和界面的问题。尝试通过电子邮件向msftadfsproxydisc
别名发送您的问题。