我能够使用ADFS对用户进行身份验证,并使用以下语句成功获取用户别名。从一段时间以来,我一直在寻找获得经过身份验证的用户的其他声明的方法,如电子邮件,姓名,角色,用户名等。
对此有任何帮助将不胜感激。
string alias =((MicrosoftAdfsProxyRP.MicrosoftPrincipal)HttpContext.Current.User).Alias;
Response.Write(别名);
答案 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>";
}
}