User.Identity.Name返回null

时间:2017-09-15 04:23:05

标签: asp.net asp.net-mvc asp.net-identity single-sign-on identityserver3

我的SSO代理由asp.net core 1.1开发,很少有客户端应用程序也由核心1.1开发,它工作正常。如果我尝试实现4.5.2开发的客户端应用程序,它验证成功,但当我尝试检索用户名时,我遇到了这个问题。

我的代码:

[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();
}

1 个答案:

答案 0 :(得分:-1)

使用User.Identity.GetUserId()代替User.Identity.Name