从ClaimsIdentity获取userId

我使用asp.net样板。

我拥有Bearer Token(JWT)的身份验证。

在配置文件方法中,我需要获取userId。

这是方法的代码

 [AbpAuthorize]
    [HttpGet]
    public async Task<IactionResult> GetProfileData()
    {
        var identity = (ClaimsIdentity)User.Identity;
    }

现在,如果我使用identity.,我可以得到唯一的名字。如何从中获取userId?

aiko_87 回答:从ClaimsIdentity获取userId

我找到了答案

只需要像这样重写它

var identity = User.Identity.GetUserId();

,
public GetClaims (IHttpContextAccessor accessor) // contractor method
{
     var currentUser = accessor.HttpContext.User;
     var userId = currentUser.FindFirst("Id")?.Value;
}

为Claims设置一个类,注入IHttpContextAccessor,然后获取您想要的任何内容。当然,您可以在控制器上注入IHttpContextAccessor,但是我不建议这样做。

本文链接:https://www.f2er.com/3168523.html

大家都在问