MVC Routing vs. Authorization / Authorize Tag - PullRequest
2 голосов
/ 04 августа 2009

Я пишу приложение MVC, у которого есть две ветви, чтобы путешествовать с самого начала. На пути авторизуется с помощью ПИН-кода, и я использую формы аутентификации для ограничения доступа к этому разделу кода. Однако другой путь примет вход в AD, и мне нужно помешать людям перемещаться между ветвями с помощью URL. Должен ли я использовать пользовательскую маршрутизацию или я должен создать два отдельных атрибута авторизации для ограничения доступа.

Спасибо

1 Ответ

2 голосов
/ 04 августа 2009

Вы можете использовать роли для обработки этого с существующим AuthorizeAttribute . Просто поместите авторизованных пользователей AD в определенную роль, а затем в пути, требующие входа в AD, установите роли для этого контроллера / метода, требующие роли AD. Это повлечет за собой реализацию RoleProvider , который может показаться несколько пугающим, но на самом деле не все так плохо. Кэшируйте роли пользователя в файле cookie, чтобы вам не приходилось каждый раз искать их. Преимущество здесь состоит в том, что это масштабируется до дополнительных ролей, поскольку ваше приложение становится более сложным.

В качестве альтернативы вы можете расширить существующий AuthorizeAttribute, переопределяя OnAuthorization и использовать свою пользовательскую версию. Этот атрибут может проверять, чтобы убедиться, что запрос не только авторизован, но и имеет правильный тип учетных данных. Тип учетных данных может быть сохранен в сеансе при входе в систему и получен оттуда для аутентифицированных пользователей. Это проще написать, но не масштабируется.

...