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