ImpersonateAnonymousToken 関数 (securitybaseapi.h)
ImpersonateAnonymousToken 関数を使用すると、指定したスレッドでシステムの匿名ログオン トークンを偽装できます。 トークンがオペレーティング システムの匿名アクセスの概念と一致することを確認するには、リモート サーバーで匿名トークンを生成するためにネットワーク アクセスを試みる前に、この関数を呼び出す必要があります。
構文
BOOL ImpersonateAnonymousToken(
[in] HANDLE ThreadHandle
);
パラメーター
[in] ThreadHandle
システムの匿名ログオン トークンを偽装するためのスレッドへのハンドル。 スレッド がシステムの匿名ログオン トークンを偽装するには、スレッド ハンドルに THREAD_IMPERSONATE アクセス権が必要です。
このようなアクセス権を付与するには、必要なアクセス権を持つ OpenThread を呼び出して、THREAD_IMPERSONATEスレッドを開く必要があります。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
ACCESS_DENIEDのエラーは、トークンが制限されたプロセス用であることを示している可能性があります。 プロセスが制限されている場合は、OpenProcessToken と IsTokenRestricted を使用してチェックします。 ACCESS_DENIEDは、スレッド ハンドルにTHREAD_IMPERSONATEへの適切なアクセス権がない場合にも返されます。
注釈
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\EveryoneIncludesAnonymous レジストリ値を DWORD=1 に設定してシステムの既定値がオーバーライドされていない限り、匿名トークンには "Everyone" グループ SID は含まれません。
偽装を取り消すには、 RevertToSelf を呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | securitybaseapi.h (Windows.h を含む) |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |