Смешать куки-аутентификацию ASP.NET Identity и JWT в ASP.NET MVC 5? - PullRequest
0 голосов
/ 01 октября 2018

У меня есть веб-приложение ASP.NET MVC 5 (.NET Framework 4.5.2, , а не Core ), использующее аутентификацию ASP.NET Identity на основе файлов cookie.Пользователи могут войти в систему на Account/Login, и в браузере установлен файл cookie.Я могу защитить действия с помощью атрибута Authorize и даже указать, какие роли могут получить к нему доступ.Это все стандартные вещи из шаблона MVC 5.

Теперь мне нужно добавить API с несколькими контроллерами Web Api 2 (наследуя ApiController), и я хочу использовать токены JWT, так как они оба будут называтьсяпользователями веб-приложения через запросы браузера, а также из внешних инструментов CLI.Я хотел бы использовать атрибут Authorize с ролями, как я это делаю в контроллерах MVC.

Итак, в идеале, когда запрашивается действие ApiController, атрибут Authorize проверяет, существует ли допустимый сеанс cookie,если это так, и это соответствует ролям, то пользователю разрешено.Если в запросе отсутствует файл cookie (запрос http из среды без браузера), он проверит наличие JWT.Сгенерированная полезная нагрузка JWT будет содержать роли, в которых находится пользователь, поэтому промежуточное программное обеспечение должно иметь возможность считывать их с него и проверять доступ.

Я много гуглил, но почти все руководства дляASP.NET Core.

...