Группирование ролей вместе и назначение пользователей в группу (поставщик ролей ASP.NET) - PullRequest
3 голосов
/ 21 февраля 2012

Существуют ли какие-либо ранее существующие решения, которые расширили бы встроенные поставщики членства SQL и поставщики ролей SQL в .NET с концепцией членства в группах.

Прямо сейчас отношения Ролей выглядят как

Users ====> UserRoles <=====Roles

Я бы хотел, чтобы это выглядело как

Users ====> UserGroups <==== Groups ====> GroupRoles <==== Roles.

Допустим, у вас есть приложение с 30 или 40 различными ролями. Каждый раз, когда новый сотрудник присоединяется к компании, вы должны помнить, какой набор ролей обычно получает департамент, а затем обязательно устанавливать эти 8 флажков при настройке учетной записи на веб-сайте.

Если у вас была концепция группы, вы могли бы создать «Группу» для каждого отдела в виде логической группировки ролей, которые обычно получают сотрудники отделов. Тогда вы можете просто добавить новых сотрудников в одну группу.

Существуют ли уже готовые реализации для этого, которые могут спасти меня от написания моей собственной?

1 Ответ

3 голосов
/ 22 марта 2012

Я предполагаю, что ваша желаемая модель в основном похожа на моя здесь , не так ли?Моя роль - это просто группа пользователей, для которой авторизация контролируется AccessRule.

enter image description here

Мой подход имеет то преимущество, что вам не нужно реализовывать пользовательские RoleProvider вообще, так как он, кажется, не тронут.ASP.NET не нужно знать, что я улучшил его на другом конце.Я также реализовал функцию-шаблон, которая позволяет создавать новые роли, используя другую роль в качестве шаблона.Это список AccessRules другого Role (или вашей роли по умолчанию).Мне не нужно использовать IsInRole для проверки авторизации.Я реализовал свой собственный метод hasAccess, который проверяет, принадлежит ли пользователь роли, для которой задан AccessRule (например, DeleteXY).

...