2011-09-14 6 views
3

어디에서 ACL을 응용 프로그램에 적용해야합니까? ASP.NET MVC의 ACL

우리가 (간체) 다음과 같은 구조를 가진 기존의 ASP.NET MVC 응용 프로그램 :

  • 데이터
  • 저장소
  • 비즈니스 로직
  • 보기 모델
  • 컨트롤러
  • 보기

현재 롤 공급자 모델을 사용하고 있지만 행 수준의 사용 권한과 기능을 제공해야합니다. 이 글에서 필자는 사용자가 엔티티의 각 인스턴스에 대해 서로 다른 기능을 가질 수 있으므로 역할 공급자 모델에서 벗어나 ACL을 액세스 제어 목록이라고 부르는 경향이 있습니다.

필자는 요구 사항에 대해 사용자가 액세스 권한에 따라 엔티티 하위 집합을 검색 할 수있는 능력과 액세스 된 엔티티에서 수행 할 수있는 기능의 두 가지 요소가 있음을 확인했습니다.

데이터 액세스는 데이터 계층에 최대한 가깝게 수행해야합니다. 더 안전하고 이 적습니다. 성능에 미치는 영향은입니다. 나는 우리가 사용자가이 시점에서 가지고있는 기능의 수준을 확인하고 싶지는 않다고 생각한다. 액션 레이어를 역할로 꾸미는 방식과 비슷하게 BL 레이어 나 컨트롤러 액션에서이 작업을 수행해야합니다.

이 작업에 도움이되는 기존 프레임 워크 또는 제품이 있습니까? 우리는 Azman과 SQLAzman을보고 있습니다. SQL Server/Entity Framework 스택에 대해서는 다른 것들이 있습니까?

+0

사용하고있는 데이터베이스? 행 수준 권한을 제공합니까? – Oded

+0

SQL 서버 – conradj

답변