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

Мне нужен RoleProvider со следующей функциональностью:

Динамическое назначение ролей задачам
Аутентификация / авторизация IPrincipals на основе динамически распределяемых задач в системе, к которой они имеют право доступа
Отчеты, показывающие, кто в данный момент вошел в систему, и другая общая статистика использования.

Я почти уверен, что мне придется кататься самостоятельно, но хотел убедиться, что я не пропустил что-то OSS или даже от MS.

Я также использую ASP.NET MVC, и поэтому я планирую написать собственный атрибут, например: [Authorize(Task=Tasks.DeleteClient)] и поместите его поверх методов, которые требуют авторизации. Вместо того, чтобы авторизоваться по роли, я авторизую задачу по роли на основе любых настроек, настроенных пользователем в БД.

Мысли?

2 ответа

Вы можете проверить NetSqlAzMan. Он позволяет вам определять задачи и назначать их ролям, а затем аутентифицировать и авторизовывать ваши объекты IPrincipal.

Возможно, вам придется свернуть свой собственный атрибут безопасности, но NetSqlAzMan должен помочь сделать это достаточно простой задачей.

У нас была похожая проблема с одной из наших систем. Первое, что я хотел бы сделать, это создать больше классов AuthorizeAttribute для ваших конкретных задач - например, DeleteClientAuthorize и т. Д. Затем вы можете добавить определенную логику в ваши классы.

Пока вы можете получить доступ к подпрограммам, которые инициируют смену ролей для текущего пользователя, вы должны быть в порядке. Просто вызовите Membership.DeleteCookie(), и это заставит следующий запрос авторизации повторно запросить ваше хранилище данных. В этот момент вы можете определить, какие роли требуются сейчас.

Другие вопросы по тегам