Мені потрібно реалізувати гнучку І просту (якщо така є) і в той же час використовувати вбудовані засоби, якщо це можливо
Поки що у мене реалізовані MembershipProvider та RoleProviders. Це круто, але куди мені піти далі?
Я відчуваю, що мені потрібно додати термін "Priviledge" і чим жорсткий код тих, хто всередині програми. Користувачі налаштовуватимуть ролі, щоб додати Privilidges до ролей та призначити Ролі користувачам.
Це звучить як гарна модель? Чи варто задуматися над тим, щоб додати привілеї на рівні користувача поверх додавання їх до ролей? Можливо, але я передбачу проблеми з налаштуванням (заплутаність) та наступною підтримкою.
Якщо я цього не роблю, а деяким конкретним користувачам знадобляться менші права - адміністратору доведеться створити іншу роль тощо.
Будь-яка срібна куля для такої системи? І чому Microsoft не пішла далі, ніж лише провайдери членства та ролей?
Ще одна ідея: залиште Ролі як "привілей" власника та введіть їх жорстким кодом. Тоді я можу кодувати ці ролі всередині програми, використовуючи всі доступні розмітки / атрибути тощо - всі Microsoft.
Додайте нову сутність "Групу" та створіть такі відносини
- Користувачі
- UserGroups
- Групи
- Рольові групи
- Ролі
Таким чином я можу збирати ролі в групи та призначати ці групи користувачам. Звучить чудово і відповідає іншим моделям програмного забезпечення. Але тоді я не можу реально реалізувати речі всередині RoleProvider:
- AddUsersToRoles
- RemoveUsersFromRoles
А деякі речі насправді вже не мають сенсу, оскільки вони будуть жорстко закодовані
- DeleteRole
- CreateRole