ImpersonateLoggedOnUser

The ImpersonateLoggedOnUser function lets the calling thread impersonate a user. The user is represented by a token handle.

BOOL ImpersonateLoggedOnUser(

HANDLE hToken // handle to a token that represents a logged-on user
);  

Parameters

hToken

Handle to a primary or impersonation access token that represents a logged-on user. This can be a token handle returned by a call to LogonUser, DuplicateToken, DuplicateTokenEx, OpenProcessToken, or OpenThreadToken functions. If hToken is a primary token, it must have TOKEN_QUERY and TOKEN_DUPLICATE access. If hToken is an impersonation token, it must have TOKEN_QUERY access.

Return Values

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

The impersonation lasts until the thread exits or until it calls RevertToSelf.

The calling thread does not need to have any particular privileges to call ImpersonateLoggedOnUser.

See Also

CreateProcessAsUser, DuplicateToken, DuplicateTokenEx, LogonUser, OpenProcessToken, or OpenThreadToken, RevertToSelf