2009-07-22 2 views
6

C#에서 ACL에 대한 사용자 권한을 검사 할 수있는 방법이 있는지 궁금합니다. 인증을 위해 액티브 디렉토리를 사용하는 대규모 시스템을 구축하고 있습니다. 가능한 한 많은 Windows 보안 배관을 사용하고 싶습니다. 지난 2 시간 동안 System.Security.AccessControl을 탐색 한 후 ACL 목록에 대해 사용자 토큰을 확인하는 쉬운 방법을 제공하는지 확신하지 못합니다. 커스텀 시스템을 구현하기에 충분한 추상 클래스가 있지만 윈도우 보안 디스크립터를 조작하는 것이 훨씬 더 많은 것처럼 보입니다.C#의 ACL 검사/관리

나는 훨씬 더 유연한 것으로 보이는 Authz API를보고 보안 설명자에 대해 컨텍스트를 확인할 수있는 기능 (AuthzAccessCheck)이 있습니다. 내가 필요하다면 나는 그들을 감싸는 것에 전혀 반대하지 않는다.

다른 사람들도 비슷한 문제를 겪었습니까? 만약 그렇다면 장본인이 보았던 장단점은 무엇입니까?

+0

웹 응용 프로그램 (파일 및 폴더 아님)에서 내 보안 문제로'System.Security.AccessControl'을 사용하려고합니다. 제발 공유 할 수있는 내용이 있습니까? 덕분에 – Ashkan

+0

Authz를 사용하고 래퍼를 만들었습니다. –

+0

Authz에 대한 자료를 알고 있습니까? 나는 그것을 봤 거든 그리고 난 그냥 C에서 MSDN이 웹 사이트를 발견 + +. 액세스 제어 라이브러리 인 [nAcl] (http://nacl.codeplex.com)을 이미 찾았지만 내 요구 사항을 충족시키지 못합니다. – Ashkan

답변

1

ACL은 어떻게 저장되고 액세스됩니까? ACL 항목을 PrincipalPermission 개체로 변환 할 수 있습니까? 그렇다면 Demand() 메서드를 사용하여 액세스 권한을 확인할 수 있으며 사용자가 액세스 권한이없는 경우 SecurityException을 던집니다.