impersonateAnonymousToken 函数 (securitybaseapi.h)
ImpersonateAnonymousToken 函数使指定线程能够模拟系统的匿名登录令牌。 为了确保令牌与操作系统的匿名访问概念匹配,应在尝试网络访问之前调用此函数,以在远程服务器上生成匿名令牌。
语法
BOOL ImpersonateAnonymousToken(
[in] HANDLE ThreadHandle
);
参数
[in] ThreadHandle
用于模拟系统的匿名登录令牌的线程句柄。 线程句柄必须具有THREAD_IMPERSONATE访问权限,线程才能模拟系统的匿名登录令牌。
若要授予此类访问权限,必须通过调用具有所需访问权限的 OpenThread 来打开线程THREAD_IMPERSONATE。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
ACCESS_DENIED错误可能指示令牌适用于受限进程。 如果进程受到限制,请使用 OpenProcessToken 和 IsTokenRestricted 检查。 如果线程句柄缺少对THREAD_IMPERSONATE的正确访问权限,也会返回ACCESS_DENIED。
注解
匿名令牌不包括“每个人”组 SID,除非通过将 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\EveryoneIncludesAnonymous 注册表值设置为 DWORD=1 来重写系统默认值。
若要取消模拟,请调用 RevertToSelf。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | securitybaseapi.h (包括 Windows.h) |
Library | Advapi32.lib |
DLL | Advapi32.dll |