Атрибуты на областях в ASP.NET MVC 2? - PullRequest
0 голосов
/ 19 сентября 2010

Область «Администратор» в моем приложении содержит несколько контроллеров, и для каждого из них немного повторяется атрибут [Authorize]. Есть ли способ сообщить платформе, что все контроллеры в определенной области должны иметь определенные атрибуты?

Редактировать: Наследование не является решением в этом случае. Во-первых, контроллеры уже наследуются от пользовательского класса, а во-вторых, речь идет об украшении классов, а не о наследовании.

Ответы [ 3 ]

1 голос
/ 19 сентября 2010

MVC 3 имеет новую функцию, называемую Global Action Filters, которая идеально подходит для того, что вы делаете.Поскольку вы, вероятно, еще не используете MVC 3, вы также можете реализовать Global Action Filter в более ранних версиях MVC, следуя этому примеру .Просто настройте решение для фильтрации, проверьте, находитесь ли вы в области «Администратор» для текущего выполняемого запроса, а затем примените свой атрибут Authorize.

Это позволит вам сделать это без необходимости применять общий базовый класс какВы просили.

1 голос
/ 19 сентября 2010

Вы можете создать базовый контроллер, от которого извлекаются все контроллеры в этой области, и украсить его атрибутом [Authorize].

0 голосов
/ 19 сентября 2010

Существует четыре варианта:

  1. Создать отдельный базовый контроллер и заставить его наследовать административные разделы
  2. Добавить атрибут авторизации в класс контроллера вместо каждого метода / Actrion
  3. Украсьте каждый по отдельности
  4. напишите свою собственную логику для авторизации и добавьте ее в свой текущий базовый контроллер
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...