2012-10-13 2 views
-1

2 개의 스레드가있는 프로그램이 있습니다. 나는 첫 번째 스레드가 USER_1의 사용자 권한으로 실행되고, 두 번째 스레드는 Windows의 USER_2에서 실행되기를 원합니다. USER_1로 로그인하면 두 스레드 모두 USER_1 권한을가집니다. 어떻게 스레드의 사용자를 변경할 수 있습니까?어떻게 C에서 스레드 사용자를 변경하려면?

+0

정확히 무엇을 하려는지 설명해 주시겠습니까? 스레드에 역할을 할당하려고합니까? .NET을 사용하고 있습니까? Win32? 다른 무엇인가 함께? –

+0

단순히 USER_1이 첫 번째 스레드에 폴더를 만듭니다. USER_2는 두 번째 스레드에서 해당 폴더를 삭제할 수 없습니다. –

+0

@Pazis, USER_2는 USER_1 스레드 스택을 손상시키고 USER_1의 컨텍스트에서 원하는대로 수행 할 수 있습니다. 주소 공간을 공유하기 때문에 – bdonlan

답변

4

SetThreadToken()을 사용하는 스레드에 가장 (impersonation) 토큰을 지정해야합니다. 그래도 그렇게하는 것은 쉽지 않을 수 있습니다.

+0

어떻게 사용할 수 있습니까? 예를 들어 주시겠습니까? –

+1

기성품 예제가 없습니다. 온라인을 찾으십시오. –

+0

'SetThreadToken()'만이 사용자를 가장하는 유일한 방법은 아닙니다. LogonUser()와 또한 있습니다. 예를 들어'ImpersonateLoggedOnUser()'입니다. –

관련 문제