Функция 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

См. также раздел