Я написал несколько сложных приложений MVC, которые основаны на ролях и используют членство .NET. В моем первом проекте я использовал роли со структурой, подобной этой:
- Администратор * * 1004
- Менеджер
- утверждающий
Я быстро обнаружил, что это не очень масштабируемо, например, клиент сказал бы: «Я хочу, чтобы конкретный пользователь x имел все права администратора, но не delete». Затем мне пришлось бы поставить взломать контроллер для этого пользователя.
Поэтому моя вторая реализация привела к такой структуре ролей:
- CanCreate
- CanDelete
- CanEditAll
- CanEditOwn
Этот подход затем привел к буквально десяткам ролей в зависимости от того, могут ли они редактировать определенные элементы глобально или только свои собственные и т. Д. Это также приводит к гораздо большему количеству действий контроллера и значительно большему количеству кода - хотя, возможно, это и будет просто дело в сложном приложении!
У меня вопрос: правильно ли я подхожу к этому, и есть ли хорошие онлайн-ресурсы о «правильном» подходе к сложным приложениям с множеством ролей. Я правильно это делаю?