Настройка пользовательских ролей авторизации для MVC3 - PullRequest
0 голосов
/ 25 августа 2011

В настоящее время мой контроллер выглядит следующим образом:

public class ProductBrandsController : Controller

Я читал в Интернете, что я могу применить декоратор [Authorize] к каждому действию, но также ко всему контроллеру.

Есть ли способ объявить собственный декоратор, чтобы я назвал его так:

[Authorize(Roles = "God")]
public class ProductBrandsController : Controller

Или, может быть, это слишком громоздко.Я не прочь создать новый декоратор и назвать его так:

[Administrator]
public class ProductBrandsController : Controller

//Or 

[ContentManager]
public class ProductBrandsController : Controller

Затем я бы создал собственный класс, чтобы проверить, входит ли пользователь, вошедший в систему, в роль.

Есть предложения, как к этому подойти?

1 Ответ

1 голос
/ 25 августа 2011

Конечно, вам просто нужно извлечь из ActionFilterAttribute.

 public class AdministratorRequiredAttribute : ActionFilterAttribute
 {
      override OnActionExecuting() { }
      override OnActionExecuted() { }
      override OnResultExecuting() { }
      override OnResultExecuted() { }
 }

Вы можете переопределить метод OnActionExecuting, чтобы вставить логику для проверки подлинности вашего пользователя; когда этого недостаточно, вы можете перенаправить пользователя из метода действия с помощью объекта контекста.

...