Как далеко можно «детализировать» роли в приложении .NET MVC?

Я написал несколько сложных приложений MVC, все они основаны на ролях и используют членство в .NET. В моем первом проекте я использовал роли со структурой, подобной этой:

  • Администратор
  • Менеджер
  • Утверждающий

Я быстро обнаружил, что это не очень масштабируемо, например, заказчик скажет: «Я хочу конкретного пользователя x чтобы иметь все права администратора, но не удалить ». Затем мне пришлось бы взломать контроллер для этого пользователя.

Таким образом, моя вторая реализация привела к такой ролевой структуре:

  • CanCreate
  • CanDelete
  • CanEditAll
  • CanEditOwn

Этот подход затем привело к буквально десяткам ролей в зависимости от того, могут ли они редактировать отдельные элементы глобально или только свои собственные и т. д. Это также приводит к гораздо большему количеству действий контроллера и значительно большему количеству кода - хотя, возможно, это только так в случае сложное приложение!

Мой вопрос в том, правильно ли я подхожу к этому, и есть ли какие-либо хорошие онлайн-ресурсы о «правильном» подходе к сложным приложениям с множеством ролей. Правильно ли я делаю это?

5
задан Flimzy 20 June 2018 в 10:16
поделиться