2008-10-17 3 views
2

Windows에서 다른 사용자를 가장하려고합니다. 예를 들면 다음과 같습니다. 사용자 A와 관리자 B에 대한 로그온 권한을 가진 디렉토리를 만들고 실행합니다 .exe 사용자 A를 가장하여 해당 디렉토리에서 편집/제거/삽입 할 수있는 권한을 부여하고 싶습니다.가장 MFC C++

http://www.codeproject.com/KB/system/UserImpersonation.aspx

그것은 당신에게 시작하는 장소를 제공해야합니다 : 윈도우 사용자 가장에이 기사를 체크 아웃 시작으로 http://msdn.microsoft.com/en-us/library/aa374731(VS.85).aspx

답변

4

:

나는이 발견했다. 더 많은 제어가 필요하면 액세스 토큰을 조사해야합니다.

+0

나는 이것을 해냈다. – kenny

0

사용자 A의 폴더와 사용자 B의 폴더에 액세스하려면 관리자가 모든 폴더에 들어갈 수있는 권한을 가지도록 폴더 사용 권한을 설정하기 만하면됩니다. 일반적으로 기계 관리자는 이미 해당 권한을 가지고 있습니다. 여기서는 일반 Windows 사용자 계정 및 일반적인 컴퓨터/도메인 관리자 계정에 대해 설명합니다.

사용자 A가 되려면 해당 사용자가되기 위해 사용자 A의 활성 권한이 필요하다는 의미입니다. 가장 (내가 시도한 것부터) 단순하지 않습니다. 도메인 컨트롤러를 통해 액세스를 요청하고 사용자 B라는 협상을해야하며 일반적으로 사용자 A와 사용자 B가 공유하는 사용자 A를 가장 할 권한이 있어야합니다. 자격 증명 처리 및 보안 컨텍스트 협상. 나는 이것이 당신이 추구하는 과정의 유형이라고는 생각하지 않습니다.

몇 가지 유용한 기능

이 포함됩니다 : 설정하려면

문맥을이이 협상이 완료되면 가장에게

AcquireCredentialsHandle() 
InitializeSecurityContext() 
AcceptSecurityContext() 
CompleteAuthToken() 

을 협상하는 데 사용되는 데이터가 뒤쪽으로 전달되고 전달 사용자 A와 사용자 B 사이 보안 컨텍스트가 만들어져 있고 가장을 시작하고 중지하는 데 사용됩니다. 내가 해당 사용자의 적극적인 참여하지 않고 사용자를 가장하기 위해 다른 방법을 모르는

ImpersonateSecurityContext() 
RevertContext() 

하거나 적극적으로 해당 사용자로 로그온.

희망이 어떤 식 으로든 도움이됩니다.