문제

리포지토리 패턴을 사용하여 nhibernate를 사용하여 데이터베이스를 쿼리합니다. 다음과 같은 작업을 쉽게 수행 할 수 있습니다.

public t getbyid (int id) {...}

그러나 누군가가 쿼리 스트링과 함께 허용되지 않는 것들을보기 시작할 때는 큰 도움이되지 않습니다.

그것을 복합하기 위해, 일부 물체는 권한을 수행 해야하는 부모 대상의 깊이 중첩 된 어린이입니다.

예를 들어 블로그 -> 저자 -> post-> 댓글. 이 예전에서 우리는 저자에게 해당 게시물에 대한 자신의 게시물과 의견을 편집 할 수 있지만 다른 저자의 보거나 편집하지는 않습니다. 게시물이 저자에게 속하는 것은 쉽게 확인하기 쉽습니다. 주석이 저자의 의견에 속하는지 확인하기가 조금 더 어렵습니다. 우리는 더 깊어지는 몇 가지 사례가 있습니다.

그렇다면 ... 우리는 어떻게 (모델 또는 저장소에서) 권한을 부여합니까?

도움이 되었습니까?

해결책

데코레이터 패턴을 구현할 수 있습니다 - 나는 당신이 dp/ioc 컨테이너를 사용하여 속이기구를 주입한다고 가정합니까?

통화가 특정 사용자/요청 유형에 유효한 것을 확인한 다음 통화를 Irepository로 다시 전달하는 isecurerepository를 생성합니다. 또한 메소드를 호출 한 다음 반환 유형을 확인할 수 있습니다 ...

그런 다음 IOC를 설정하여 IOC를 사용하여 IPOSORITION을 감싸는 isecurerepository를 사용합니다 ...

너무 간단하게들 ...

다른 팁

이것은 귀하의 요구에 대한 좋은 구현 일 수 있습니다. http://www.codeproject.com/kb/web-security/objectlevelsecurity.aspx, ACL 기반 모델입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top