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

+0

System.Security.Principal只有User.Identity.Name,没办法GetUserId() –