2010-04-01 2 views
3

로컬 계정으로 실행되지만 도메인의 폴더를 모니터링해야하는 C# winform 응용 프로그램이 있습니다. 파일을 복사하려면 here에서 약간 수정 된 코드를 사용하고 있는데 제대로 작동합니다. 도메인의 폴더를 모니터링 할 수 있도록 FileSystemWatcher와 유사한 코드를 사용하여 가장 (impersonation)을 설정할 수 있습니까?가장 된 사용자로 실행중인 FileSystemWatcher

using (new Impersonator("myUsername", "myDomainname", "myPassword")) 
{ 
    ... 

    <code that executes under the new context> 

    ... 
} 
+0

대답은 예입니다. –

+0

어떻게해야합니까? 도메인 계정을 가장하면서 FileSystemWatcher 개체를 만들면됩니까? – AdmSteck

답변

6

예, 프로젝트에서이 클래스를 포함 단순히보다이 같은 사용하여 블록 이내에은 FileSystemWatcher를 배치, 좋은 가장 클래스 here있다 도메인이 아닌 사용자가 액세스 할 수있는 도메인 폴더 (예 : Everyone)

사용 권한이있는 도메인 계정으로 로그온하고 winform 응용 프로그램을 실행하십시오.

FileSystemWatcher 코드를 Windows 서비스로 리 팩터하고 충분한 권한이있는 domian 계정으로 실행하십시오.

기존 코드 내에서 도메인 계정을 가장하면 코드 프로젝트에는 여러 가지 좋은 해결책이 있습니다.

+0

필자가 제안한 것처럼 Impersonator를 사용하여 내 FileSystemWatcher의 초기화를 래핑했습니다. 챔피언처럼 작동했습니다. 감사. – AdmSteck

+0

np, 해피 코딩 ... –

+0

파일 핸들이 가장 된 사용자 컨텍스트에서 열리기 때문에이 작업이 가능합니다. 가장이 되 돌린 후에도 계속해서 감시자가 볼 것입니다. 다른 파일을 보려면 다시 사칭해야합니다. – Sophit

1

을 당신은 할 수 :

는 권한을 적용