ASP.Net Web Forms Контроль доступа на уровне объекта - PullRequest
3 голосов
/ 12 февраля 2009

У меня есть приложение ASP.Net Web Forms, в котором я использую аутентификацию на основе форм с поставщиками членства и ролей, что отлично подходит для аутентификации и контроля доступа к каталогам и / или файлам. Теперь мне нужно контролировать доступ на чтение, запись и удаление отдельных экземпляров сущности, например, возможность обновлять или удалять экземпляр клиента. Я пытался придумать хороший способ реализовать это, но я не знаю, с чего начать. Я прочитал о атрибуте Authorize в ASP.Net MVC и подумал, что было бы неплохо иметь что-то аналогичное - методы декорирования, как вы можете контролировать действия в ASP.Net MVC. Я не знаю ни одного из готовых способов сделать это в мире Web Forms, и не знаю никаких фреймворков или других инструментов, которые могли бы помочь мне двигаться в этом направлении. Будем весьма благодарны за любые предложения, касающиеся существующих решений и / или разработки собственной реализации.

Ответы [ 2 ]

6 голосов
/ 12 февраля 2009

Самый простой способ - потребовать, чтобы пользователь был членом ролей, необходимых для рассматриваемого метода, с PrincipalPermissionAttribute.

[PrincipalPermission(SecurityAction.Demand, Role="Supervisor")]
[PrincipalPermission(SecurityAction.Demand, Role="Owner")]
public void DeleteSomething() {...}

Обратите внимание, что это означает, что руководитель или владелец может DeleteSomething().

0 голосов
/ 24 сентября 2009

Я не думаю, что "PrincipalPermission" - хороший подход. Что если мне нужно разрешить DeleteSomthing () для другой роли? аналогично, если мне нужно удалить существующую роль для DeleteSomthing ()? Единственный способ - изменить атрибуты на уровне кода. Это вообще невозможно для больших проектов.

Я также ищу хорошее решение.

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