Я изучаю .NET Core авторизация и все примеры относятся к контроллерам MVC/WebAPI, которые поддерживают атрибут Authorize
.
Мне было интересно, есть ли способ иметь атрибут Authorize для других, «неконтроллерных» методов, чтобы я мог авторизовать вызов определенного метода службы? Я знаю, что нужно иметь авторизацию на уровне доступа (уровень контроллера), но поскольку сервисный уровень должен быть общим, и у нас может быть несколько точек доступа к приложению (не только контроллеры), мой подход заключается в том, чтобы выполнить полную авторизацию внутри контроллеров.
- Могу ли я как-то использовать атрибут
Authorize
в методах сервисного уровня? - Есть ли какая-то служба, которая обеспечивает прямую авторизацию из кода (не обязательно для конкретного ресурса, но, например, проверьте, есть ли у пользователя разрешение
Admin.Full
- на самом деле то же самое, что и атрибутAuthorize
, но внутри тела метода)?
HttpContext
внутри службы, см.IHttpContextAccessor
, если вы еще этого не сделали. - person Kirk Larkin   schedule 24.09.2019Authorize
соблюдается только компонентами ASP.NET Core (контроллеры, Razor Pages и т. д.). - person Kirk Larkin   schedule 24.09.2019