.NET에서 nhibernate를 사용할 때 승인을 처리하는 방법
-
08-07-2019 - |
문제
리포지토리 패턴을 사용하여 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 기반 모델입니다.