Есть ли какие-либо ранее существовавшие решения, которые расширяют встроенный провайдер членства в SQL? & Поставщики ролей Sql в .NET с концепцией членства в группах ,Объединение ролей вместе и назначение пользователей группе (поставщик ролей ASP.NET)
Сейчас отношения Роли выглядит
Users ====> UserRoles <=====Roles
Я хотел бы расширить, что выглядеть
Users ====> UserGroups <==== Groups ====> GroupRoles <==== Roles.
Допустим, у вас есть приложение с 30 или 40 различных ролей в ней. Каждый раз, когда новый сотрудник присоединяется к компании, вы должны помнить, какой набор ролей, который обычно получает отдел &, затем убедитесь, что вы отметили эти 8 флажков при настройке своей учетной записи на сайте.
Если у вас была концепция группы, вы могли бы создать «Группу» для каждого отдела в качестве логической группировки ролей, которые обычно получают сотрудники отделов. Затем вы можете просто добавить новых сотрудников в одну группу.
Есть ли какие-либо из вариантов реализации для этого уже имеющиеся, которые могут спасти меня, написав мои собственные?
Я предполагаю, что ваша желаемая модель в основном похожа на [мой здесь] (http://stackoverflow.com/questions/5518746/how-to-join-with-linq-to-typed-dataset), не так ли? Моя «Роль» - это просто пользовательская группа, поскольку авторизация контролируется «AccessRule». –
Действительно. Вы пришли к этому немного по-другому, я хотел добавить «группу» между пользователями и ролями ... вы сделали группы ролей == и добавили AccessRules за пределы, но концепция выглядит принципиально одинаковой. Единственная причина, по которой я хотел сделать это по-другому, заключалась в том, чтобы иметь возможность использовать встроенные методы-поставщики, такие как 'IsInRole()' и т. Д. –
. Мой подход имеет то преимущество, что вам не нужно реализовывать пользовательский ' RoleProvider' вообще, поскольку он сохраняет его, по-видимому, нетронутым. ASP.NET не нужно знать, что я улучшил его на другом конце. Я также внедрил функцию-шаблон, которая позволяет создавать новые роли с помощью другой роли в качестве шаблона. Это список «AccessRules» другой «Роли» (или вашей роли по умолчанию). Мне не нужно использовать 'IsInRole' для проверки авторизации. Я реализовал свой собственный метод hasAccess, который проверяет, принадлежит ли пользователю роль, которая имеет данный «AccessRule» (f.e. DeleteXY). –