2012-12-19 3 views
10

특정 폴더 내의 디렉터리와 파일을 나열하려고 시도했습니다. 이 폴더는 Windows 인증 (NTLM)으로 로그인하고 Active Directory (homedirectory 속성)에서 검색되는 현재 사용자 (Page.User)에 따라 다릅니다.네트워크 폴더에 액세스하는 현재 사용자로 가장하는 액세스가 거부되었습니다.

도메인 사용자를 사용하여 AD에 액세스하고 폴더 위치를 검색하고 있습니다. 정상적으로 작동합니다.

무엇이 실패하면 가장을 사용하더라도 System.IO.DirectoryInfo.GetDirectories()을 사용하여 하위 폴더를 검색하는 것이 실패합니다. 내가 명의 도용 사용자가 폴더에 액세스 할 수 있는지 확인했다

System.Security.Principal.WindowsImpersonationContext impersonationContext; 
impersonationContext = ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate(); 

:

는 여기에 내가 가장을 위해 사용하고 코드입니다.

내가 지금까지 발견 한 바에 따르면 위임이나 Kerberos 인증을 설정해야하는 것으로 보입니까? 이것이 이것을 성취하는 유일한 방법입니까? 가장은 피해야합니까?

+1

이 Stackoverflow 이전 게시물을 확인했습니다 .. ..? http://stackoverflow.com/questions/2563724/accessing-password-protected-network-drives-in-windows-in-c/2563809#2563809 – MethodMan

답변

2

가장은 웹 사이트 서비스 계정이 해당 컴퓨터의 인 것처럼 가장 할 수 있습니다 (가장 된 것). 따라서 AD를 쿼리하여 귀하 (또는 가장 한 사용자)가 가지는 권한을 확인할 수 있습니다.

다른 컴퓨터에서 UNC 공유에 대한 액세스를 요청하면 다른 컴퓨터에서 가장 된 사용자 대신 웹 사이트 서비스 계정이 작동하고 있음을 수락하도록 요청하고 있습니다. 이것은 위임하고 있습니다. 다른 컴퓨터가 사용자 자격 증명 자체를 확인하지 않고 해당 검사를 웹 서버에 위임합니다.

클라이언트가 다른 컴퓨터 (일반적으로 웹 서버의 경우)의 웹 사이트에 연결하는 경우 클라이언트에서 웹 서버 간 UNC 파일 서버로 "이중 홉"이 생깁니다.

SetSPN 유틸리티를 통해 Kerberos를 구성하고 AD 사용자 및 컴퓨터와 함께 웹 사이트 서비스 계정에 대한 위임 권한을 설정해야합니다. 이 문제를 설정하는 데 문제가 있다면 DeleConfig이라는 도구를 사용하는 것이 좋습니다.

관련 문제