Использование .Net Membership / Roles для поддержки настроенных правил авторизации / доступа - PullRequest
2 голосов
/ 01 февраля 2012

Я пишу приложение, которое будет поддерживать настраиваемых пользователей и роли.Под настраиваемым я подразумеваю, что будет предоставлена ​​форма администрирования, позволяющая добавлять пользователей, создавать роли, назначать пользователей ролям и , что наиболее важно , связывать правила авторизации с ролями.При просмотре роли администратору будет предоставлен ряд флажков, например, позволяющих им по своему усмотрению авторизовать роль для областей функциональности программы.Мне нужно иметь возможность писать код в приложении, например:

if (!currentUser.IsAuthorizedTo(AuthorizationRules.ADD_ORDER))
//Show not authorized message or prompt for elevation

Где IsAuthorizedTo будет смотреть на роли текущего пользователя и определять, есть ли у любого из них необходимая авторизация.

Я просмотрел документацию по API и нашел только раздел авторизаций web.config, что далеко не оптимально.Я предполагаю, что мне, возможно, придется свернуть свой собственный, но я подумал, что сначала должен спросить:

Существует ли существующий метод, использующий .net членство / роли api или другую предлагаемую систему (кроме.net членство API), чтобы разрешить тонкую авторизацию на основе ролей и правил доступа?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2013

Думаю, вам следует использовать пользовательскую авторизацию Фильтры , затем OnAuthorization сделает вашу логику, чтобы проверить, имеет ли текущий пользователь право доступа к текущему действию.

0 голосов
/ 01 февраля 2012

AuthorizeAttribute имеет свойство Roles, которое может быть полезно. Это ограничит определенные контроллеры или действия указанными ролями.

Подробнее здесь .

Обновление:

Вот пример из проекта NerdDinner :

[Authorize(Roles="admin")]
public ActionResult Create() {
    ...
}
...