ACL в ASP.NET MVC - PullRequest
       1

ACL в ASP.NET MVC

3 голосов
/ 14 сентября 2011

Где мы должны поместить ACL в наше приложение?

У нас есть приложение ASP.NET MVC со следующей структурой (упрощенно):

  • Данные
  • Репозиторий
  • Бизнес-логика
  • Просмотр моделей
  • Контроллеры
  • Представления

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

Как япосмотрите, что требование состоит из двух частей - возможность для пользователя извлекать подмножество сущностей на основе предоставленного доступа, а затем функциональные возможности, которые они могут выполнять на доступной сущности.

Данныедоступ, вероятно, должен быть сделан как можно ближе к уровню данных - он будет более безопасным и окажет меньше влияния на производительность.Я думаю, что мы не хотим проверять уровень функциональности, который есть у пользователя на данный момент.Должны ли мы делать это на уровне BL или в действиях контроллера, подобно тому, как мы в настоящее время украшаем методы действий ролями.

Существует ли существующая структура или продукт, который поможет с этим?Мы смотрим на Azman и SQLAzman - есть ли другие, для стека SQL Server / Entity Framework?

1 Ответ

0 голосов
/ 28 июня 2012

Возможно, вы захотите взглянуть на Spring ACL.Я не использовал, но, похоже, обеспечивает необходимый уровень контроля.

http://static.springsource.org/spring-security/site/docs/3.0.x/reference/domain-acls.html

http://grzegorzborkowski.blogspot.com/2008/10/spring-security-acl-very-basic-tutorial.html

...