次の方法で共有


CoImpersonateClient 関数 (combaseapi.h)

呼び出しの間、サーバーが現在の呼び出しのクライアントを偽装できるようにします。

構文

HRESULT CoImpersonateClient();

戻り値

この関数は、S_OKを含む標準の戻り値をサポートします。

解説

このメソッドを使用すると、サーバーは、呼び出しの間、現在の呼び出しのクライアントを偽装できます。 CoRevertToSelf を呼び出さない場合、COM は自動的に元に戻します。 オブジェクトがRPC_C_AUTHN_LEVEL_CONNECT以上の認証を有効にして呼び出されていない限り、この関数は失敗します (RPC_C_AUTHN_LEVEL_NONEを除く任意の認証レベル)。 この関数は、次の一連の一般的な呼び出しをカプセル化します (エラー処理は除外されます)。

    CoGetCallContext(IID_IServerSecurity, (void**)&pss);
    pss->ImpersonateClient();
    pss->Release();

CoImpersonateClient は 、現在の呼び出しに関するデータを含む IServerSecurity のインスタンスへのポインターを取得し、 その ImpersonateClient メソッドを呼び出してからポインターを解放するプロセスをカプセル化します。 CoRevertToSelf (または IServerSecurity::RevertToSelf) を 1 回呼び出すと、任意の数の呼び出しを元に戻してクライアントを偽装します。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー combaseapi.h (Objbase.h を含む)
Library Ole32.lib
[DLL] Ole32.dll

関連項目

クローキング

IServerSecurity::ImpersonateClient

偽装

偽装と非同期呼び出し

COM のセキュリティ