WebApi - внедрение идентификатора пользователя, вошедшего в систему - PullRequest
0 голосов
/ 07 июня 2018

У меня есть приложение Web API с работающей аутентификацией и т. Д. Теперь я хочу иметь возможность (N) ввести некоторые данные о текущем вошедшем в систему пользователе.Итак, я настроил ninject так, чтобы он выглядел примерно так:

kernel.Bind<UserContext>().ToMethod(ctx => 
{
    var identity = HttpContext.Current?.Request?.LogonUserIdentity

    if (identity != null)
    {
        return new UserContext
        {
            UserId = identity.GetUserId(),
        };
    }

    return new UserContext();
}).InRequestScope()

Но когда этот метод вызывается, LogonUserIdentity выглядит совсем не как личность, созданная через OAuthAuthorizationServerProvider.GrantResourceOwnerCredentials, а как личность локальной учетной записи Windows.Нет идентификатора или адреса электронной почты (имя - это имя моей локальной учетной записи).HttpContext.Current.User с другой стороны «пусто» (без имени, без идентификатора).

Как я могу получить текущего пользователя OAuth?

Решено

Здесь найдено решение: Пользователь (IPrincipal) недоступен в конструкторе ApiController с использованием Web Api 2.1 и Owin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...