В веб-приложении, над которым мы в настоящее время работаем, у нас есть объект Company
, который может редактировать только тот, кто его создал.Ресурсная авторизация
Таким образом, каждый раз, когда вызывается действие EditCompany
, мы должны проверить базу данных и посмотреть, является ли текущий зарегистрированный пользователь владельцем компании. Это всего лишь один пример, но у нас есть больше типов разрешений, кроме Владельца, и больше операций с Company
.
Мы сделали то, что в начале каждого действия мы вызываем некоторый метод обслуживания, чтобы узнать, требуется ли этому пользователю разрешение для этого ресурса, например companyService.HasEditPermission(userId, companyId)
, и если это правда, мы продолжаем дальше.
Но недавно мне сказали, что такой код shoudlnt находится в контроллере, но должен быть создан пользовательский атрибут, который обрабатывает эту логику разрешений, а затем мы просто поместим этот атрибут в действие контроллера. Но этот человек не программист Asp.Net
, и он не знает, как он должен быть реализован в Asp.Net
. Поэтому мой вопрос: возможно ли сделать что-то подобное в Asp.Net
, и если да, то как нам это реализовать?