Создайте ограничение маршрута, которое применяет маршрут только тогда, когда у действия есть определенный фильтр действия. - PullRequest
0 голосов
/ 14 мая 2009

У меня есть список действий на различных контроллерах, которые являются функциями «администратора» (создание, обновление, удаление), но другие действия на тех же контроллерах, которые не являются действиями администратора.

Я хочу создать маршрут с префиксом /Admin/ перед всеми URL-адресами, которые вызывают действие с атрибутом фильтра Authorize.

Это вообще возможно сделать?

1 Ответ

0 голосов
/ 14 мая 2009

Да, все возможно, но я думаю, что вы хотите сказать, это легко сделать? И ответ нет. Что вам нужно сделать, это создать свой собственный маршрут, а затем добавить этот настроенный маршрут в отображение маршрута. Это не сложно сделать, но проблема заключается в том, что маршруты инициализируются до контроллера, поэтому вам придется самостоятельно выполнять поиск и отражение для проверки ваших критериев.

Существует альтернативный вариант, вы можете попробовать использовать ActionMethodSelectorAttribute, который позволяет вам создавать собственные селекторы для ваших методов действий и игнорировать те, которые не содержат атрибут Authorize. Примером использования этого атрибута является ActionVerbAttribute.

Самый простой способ на сегодняшний день - просто создать собственное расширение для Html.ActionLink, которое выполняет свои собственные проверки и сохранить его только для отображения, а затем создать двойные маршруты для того же контроллера в вашем Global.asax. 1005 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...