Доступ на основе ролей .NET с ресурсами - лучшая практика - PullRequest
0 голосов
/ 29 января 2019

Я занимаюсь разработкой приложения .NET MVC и в настоящее время использую только контроль доступа на основе ролей.Например, я обертываю конечные точки своих контроллеров [Authorize(Roles="Provider")].Теперь я хочу добавить разрешения на добавление ресурсов, например, не только сказать, может ли пользователь редактировать документ, но и определить, какие документы он может редактировать.Поэтому я хочу, чтобы это выглядело примерно так: [Authorize(Roles="Provider")] [Authorize("CanEditObject1")]

Каков наилучший способ для этого?Какой тип авторизации требуется здесь?Возможно, мне нужно смешать некоторые (доступ на основе ролей + доступ на основе политик)?Мне нужно изменить весь метод аутентификации или просто добавить поверх него?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Если предположить, что авторизация на уровне контроллера доступна только для чтения, в методах редактирования контроллера может быть применена более ограничительная роль «Редактировать» с использованием атрибута авторизации в методах редактирования.Я также условно скрыл бы ссылки для редактирования методов в представлении от конечных пользователей без этой роли.Другой вариант - использовать утверждения о том, что прошедший проверку пользователь должен различать свой доступ к определенным ресурсам.

0 голосов
/ 29 января 2019

Вам захочется заглянуть в Политики.Я тоже довольно быстро научился этому, когда попытался представить пиар для помощников по тегам авторизации и не вернулся к нему.Вкратце, определите политики в корне вашей композиции и проверьте их с атрибутами Authorize.

Доступ на уровне строк может потребовать дополнительной проверки, если только вы не можете установить уровни членства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...