User.Identity.GetUserId () всегда возвращает ноль в. net Core - PullRequest
0 голосов
/ 07 февраля 2020

Я использую Microsoft Identity. Но в моем коде метод Identity User.Identity.GetUserId всегда возвращает ноль.

Вот мой код.

private string GetUserId()
    {
        string userId = "";

        try
        {
            if (_identity != null)
                userId = _identity.GetUserId();
            else
                userId = User.Identity.GetUserId();
        }
        catch (Exception ex)
        {
            _logger.Error(ex.Message, ex);
            throw;
        }

        return userId;
    }

1 Ответ

0 голосов
/ 12 февраля 2020

User.Identity.GetUserId() больше не существует, но идентификатор доступен как претензия к вашей основной сумме.

Первый и самый простой способ - просто вытащить претензию:

userId = User.FindFirstValue(ClaimTypes.NameIdentifier);

Если вы есть экземпляр UserManager<TUser>, тогда вы можете использовать метод GetUserId(), используя DI:

userId = _userManager.GetUserId(User);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...