User.Identity.Name返回null
问题描述:
我的SSO代理由asp.net core 1.1
开发,还有很少的客户端应用程序也是由核心1.1开发的,它工作正常。如果我尝试实现4.5.2开发的客户端应用程序,它认证成功,但是当我尝试检索用户名时,我遇到了这个问题。User.Identity.Name返回null
我的代码:
[Authorize]
public ActionResult Index()
{
ClaimsPrincipal icp = Thread.CurrentPrincipal as ClaimsPrincipal;
// Access IClaimsIdentity which contains claims
ClaimsIdentity claimsIdentity = (ClaimsIdentity)icp.Identity;
Response.Write("User Name:"+ User.Identity.Name + "<br>");
// Access claims
foreach (Claim claim in claimsIdentity.Claims)
{
Response.Write(claim.Type+"<br>");
Response.Write(claim.Value + "<br>");
Response.Write(claim.ValueType + "<br>");
}
return View();
}
答
使用User.Identity.GetUserId()
而不是User.Identity.Name
System.Security.Principal只有User.Identity.Name,没办法GetUserId() –