Я хотел бы использовать встроенные поставщики членства и роли ASP.NET для создания системы, которая ограничивает возможности просмотра и редактирования каждого аутентифицированного пользователя.
В программном обеспечении уже есть понятия «Элементы»и "Группы".Каждый предмет принадлежит группе.
Пользователи системы в действительности принадлежат к одним и тем же группам.В настоящее время это не отражено в модели моего домена.
Существует два уровня привилегий, которые я хотел бы расширить для этих пользователей: Просмотр и Редактирование.Если они находятся в группе, я бы хотел, чтобы они могли просматривать элементы в этой группе.Если у них есть права на редактирование в этой группе, я бы хотел, чтобы они могли редактировать элементы этой группы.
Пользователи обычно принадлежат 1 группе, но могут в какой-то момент принадлежать нескольким.Возможно, у пользователя могут быть права на просмотр нескольких групп, но права на редактирование есть только у 1 (или некоторых) групп, которые он может просматривать.
Я не уверен, как с этим справиться.Должен ли я просто создать 2 роли (используя поставщика ролей asp.net) для каждой группы, то есть Group1View, Group1Edit и так далее?Или я должен создать другую таблицу, которая создает связь между таблицей aspnet_Users и таблицей Groups с третьим столбцом, определяющим уровень их привилегий?
В конечном итоге я хотел бы реализовать проверки привилегий, аналогичные тем, о которых писал Стив Смитздесь: http://stevesmithblog.com/blog/favor-privileges-over-role-checks/
Спасибо за любой вклад, который вы можете предложить!