Мне нужно реализовать гибкий И простой (если такая вещь существует) и в то же время использовать встроенные средства, если это возможно
До сих пор я реализовал MembershipProvider и RoleProviders. Это круто, но куда мне идти дальше?
Я чувствую, что мне нужно добавить термин «Привилегия», а затем жестко закодировать их внутри приложения. Пользователи будут настраивать роли для добавления привилегий в роли и назначения ролей пользователям.
Это звучит как хорошая модель? Стоит ли думать о добавлении привилегий на уровне пользователя поверх добавления их в роли? Я мог бы, но я представляю проблемы с настройкой (путаница) и после поддержки.
Если я этого не сделаю, и некоторым конкретным пользователям понадобятся меньшие привилегии - администратору придется создать другую роль и т. Д.
Любая серебряная пуля для такой системы? И почему Microsoft не пошла дальше, чем просто провайдеры членства и ролей?
Еще одна идея: оставить роли в качестве держателя привилегий и жестко их кодировать. Затем я могу кодировать эти роли внутри приложения, используя все доступные пометки / атрибуты и т. Д. - все Microsoft.
Добавить новую сущность "Группа" и создать отношения, как это
- пользователей
- USERGROUPS
- группы
- RoleGroups
- Роли
Таким образом, я могу собирать роли в группы и назначать эти группы пользователям. Звучит отлично и соответствует другим программным паттернам. Но тогда я не могу реализовать такие вещи внутри RoleProvider, как:
- AddUsersToRoles
- RemoveUsersFromRoles
И некоторые вещи больше не имеют смысла, потому что они будут жестко закодированы
- DeleteRole
- CreateRole
источник
IPrincipal
в ,IClaimsPrincipal
когда вы хотите сделать исковые чеки. Вы будете писать большую часть своего собственного кода, если вы хотите, чтобы он соответствовал (например) Аутентификации с помощью форм, но, очевидно, это можно сделать (согласно ссылке).