Расширение поставщика ролей ASP.NET в MVC

Я хочу знать, можно ли это сделать и есть ли где-то, где вы можете указать мне правильное направление.

В основном, на данный момент я использую встроенный поставщик ролей для asp.net, в действиях моего контроллера я использую настраиваемый фильтр атрибутов, как описано здесь.

Но что я хотел бы сделать, так это расширить его еще дальше, чтобы сделать что-то вроде этого:

Администратор - просмотр, редактирование, удаление

Менеджер - просмотр, редактирование

В общем, детализированные разрешения. Я искал в сети, но, похоже, не могу найти способ сделать это, не написав собственных поставщиков аутентификации / авторизации :(

Любая помощь будет принята с благодарностью!

Привет, Ник


person xqwzid    schedule 08.06.2011    source источник


Ответы (1)


Есть несколько способов решить эту проблему. Самый простой (но не обязательно лучший) способ - иметь частичные представления с элементами навигации, просмотр / редактирование / удаление и операторы if, окружающие каждую ссылку, проверяющую роль текущего пользователя.

В качестве альтернативы, на другом конце спектра находится нечто, называемое AzMan (Microsoft Диспетчер авторизации), который позволяет создавать очень детализированные авторизации на основе ролей и задач.

AzMan существует уже много лет, но, насколько мне известно, теперь он включен в корпоративную библиотеку MS.

person Digbyswift    schedule 08.06.2011
comment
Проблема с AzMan в том, что вам нужно управлять им через MMC, мне это не нравится. Я хочу, чтобы им управляли через серверную часть. Я понимаю, что вы имеете в виду, говоря об использовании частичных представлений, но я хочу, чтобы этими задачами можно было управлять, чтобы вы действительно могли создать совершенно новую роль и настроить ее. - person xqwzid; 09.06.2011
comment
Хотя AzMan можно управлять через MMC, вы можете управлять им программно. Доступ ко всему, что предлагает оснастка MMC, можно получить с помощью кода. AzMan MMC - это просто интерфейс для таблиц базы данных, которые по сути являются расширением стандартного поставщика членства. - person Digbyswift; 09.06.2011
comment
Ограничен ли AzMan только пользователями Windows, можно ли его использовать с пользователями членства ASP.NET? - person xqwzid; 10.06.2011
comment
Нет, это не ограничивается пользователями Windows. Насколько я помню, MMC позволит вам импортировать пользовательские данные Windows в вашу базу данных, чтобы вы могли получить доступ к пользовательским данным через поставщиков членства и ролей. Однако вы также можете использовать AzMan для создания пользователей, отличных от Windows, с помощью веб-формы, mvc, формы Windows и т. Д. И хранить данные в той же базе данных. AzMan - это просто более сложное и гибкое расширение базового провайдера членства .Net. - person Digbyswift; 12.06.2011