ASP.NET Установить идентификатор пользователя и IsAuthenticated = true

У меня есть приложение ASP.NET MVC, к которому должны иметь доступ только пользователи, вошедшие в систему.

Мы реализуем PingAccess и PingFederate, которые перехватывают трафик к нашему приложению и заставляют пользователя войти в систему еще до того, как он попадет в наше приложение.

После аутентификации PingAccess устанавливает файл cookie, содержащий токен JWT, и я могу прочитать его внутри контроллера MVC и абстрагировать утверждения (пример ниже), но мне нужно иметь возможность установить объект User.Identity и убедиться, что IsAuthenticated имеет значение true, чтобы я мог используйте стандартный атрибут Authorize на всех наших контроллерах.

var cookie = this.Request.Cookies.Get("PA.mycookie");
var jwtTokenString = cookie.Value;
var jwtToken = new JwtSecurityToken(jwtTokenString);
var claims = jwtToken.Claims;

Может ли кто-нибудь указать мне в правильном направлении?

Большое спасибо


person Craig Broadman    schedule 06.06.2018    source источник


Ответы (1)


Если цель обращения к объекту User.Identity и атрибуту IsAuthenticated — просто убедиться, что ваш атрибут Authorize работает, то способ сделать это с помощью токенов jwt требует некоторой настройки в Startup.cs через ConfigureOAuthTokenConsumment. Во втором ответе в этом посте есть пример кода, который может указать вам правильный путь: Как использовать JWT в приложении MVC для аутентификации и авторизации?.

person TheRyanKing87    schedule 06.06.2018