每次使用基于MongoDB令牌的身份验证,User.Identity.Name为null

时间:2018-10-21 18:47:35

标签: c# asp.net-core asp.net-core-webapi

我使用Asp.Net Core 2.1 Web API(MongoDB)创建了项目,并使用了基于令牌的身份验证。 User.Identity.Name为空。 User.Claims也显示“枚举未产生结果”。

var tokenHandler = new JwtSecurityTokenHandler();
var key = Encoding.ASCII.GetBytes(config.Value.Secret);
var tokenDescriptor = new SecurityTokenDescriptor
{
    Subject = new ClaimsIdentity(new Claim[]
    {
    new Claim(ClaimTypes.Name, UserDtos.Id.ToString()),
    new Claim(JwtRegisteredClaimNames.Sub, user.Id),
        new Claim(JwtRegisteredClaimNames.UniqueName, user.Id),
        new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
    }),
    Expires = DateTime.UtcNow.AddDays(7),
    SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
};
var token = tokenHandler.CreateToken(tokenDescriptor);
UserDtos.Token = tokenHandler.WriteToken(token);

1 个答案:

答案 0 :(得分:0)

在添加问题和受众之后工作。 谢谢