Получить идентификатор пользователя от ClaimsIdentity - PullRequest
0 голосов
/ 04 ноября 2019

Я использую шаблон asp.net.

У меня есть авторизация с токеном на предъявителя (JWT).

В методе профиля мне нужно получить userId.

Здеськод метода

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

Теперь, если я использую identity., я могу получить только имя. Как я могу получить userId от него?

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019
public GetClaims (IHttpContextAccessor accessor) // contractor method
{
     var currentUser = accessor.HttpContext.User;
     var userId = currentUser.FindFirst("Id")?.Value;
}

Создайте класс для утверждений, введите IHttpContextAccessor и возьмите все, что захотите. Конечно, вы можете внедрить IHttpContextAccessor на контроллере, но я не предлагаю этого.

0 голосов
/ 04 ноября 2019

Я нашел ответ

просто нужно переписать его вот так

var identity = User.Identity.GetUserId();

...