Функция ImpersonateAnonymousToken (securitybaseapi.h)
Функция ImpersonateAnonymousToken позволяет указанному потоку олицетворять анонимный маркер входа в систему. Чтобы убедиться, что маркер соответствует концепции анонимного доступа операционной системы, необходимо вызвать эту функцию перед попыткой сетевого доступа создать анонимный маркер на удаленном сервере.
Синтаксис
BOOL ImpersonateAnonymousToken(
[in] HANDLE ThreadHandle
);
Параметры
[in] ThreadHandle
Дескриптор потока для олицетворения анонимного маркера входа в систему. Дескриптор потока должен иметь право доступа THREAD_IMPERSONATE, чтобы поток олицетворял анонимный маркер входа в систему.
Чтобы предоставить такой доступ, поток должен быть открыт путем вызова Метода OpenThread с нужным правом доступа для THREAD_IMPERSONATE.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Ошибка ACCESS_DENIED может указывать на то, что маркер предназначен для ограниченного процесса. Используйте OpenProcessToken и IsTokenRestricted, чтобы проверка, является ли процесс ограниченным. ACCESS_DENIED также возвращается, если дескриптор потока не имеет доступа к THREAD_IMPERSONATE.
Комментарии
Анонимные маркеры не включают идентификатор безопасности группы "Все", если системное значение по умолчанию не было переопределено, задав для реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\EveryoneIncludesAnonymous значение DWORD=1.
Чтобы отменить олицетворение, вызовите RevertToSelf.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | securitybaseapi.h (включая Windows.h) |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |