Модель безопасности asp.net довольно ограничена.По сути, вы имеете контроль только на уровне ролей.Это означает, что для любой операции вы должны проверить, является ли пользователь какой-либо из ролей, для которых вы хотите разрешить эту операцию.
Мы пошли по пути определения нашей собственной модели, которая дает гораздо большезернистость.В основном мы определяем операции и назначаем эти операции различным ролям.Таким образом, мы можем проверить, имеют ли они право «удалять учетную запись», по сравнению с проверкой, находятся ли они в «Администраторе», «Администраторе учетной записи» или в любом количестве других ролей.Это очень похоже на работу Active Directory.Кроме того, это позволяет нам переконфигурировать роли по мере необходимости.
Существует фрагмент под названием Диспетчер авторизации (AzMan) , который поставляется с окнами.Он может работать с вашим провайдером членства, чтобы обеспечить контроль уровня операций.Некоторые люди имели успех с этим, но другие жаловались, что трудно работать.Мы использовали его около 5 лет назад в проекте, и в то время он работал около 95% времени.Остальные 5% имели проблемы со связью с нашим контроллером AD.
Что приводит нас к вашему вопросу: является ли встроенный поставщик членства ASP.Net настоящей системой контроля доступа на основе ролей?Это позволяет вам определять роли, а не операции.