次の方法で共有


CoQueryClientBlanket 関数 (combaseapi.h)

現在のスレッドで実行されているメソッドを呼び出したクライアントを調べるには、サーバーによって呼び出されます。 これは、 IServerSecurity::QueryBlanket のヘルパー関数です。

構文

HRESULT CoQueryClientBlanket(
  [out, optional]     DWORD            *pAuthnSvc,
  [out, optional]     DWORD            *pAuthzSvc,
  [out, optional]     LPOLESTR         *pServerPrincName,
  [out, optional]     DWORD            *pAuthnLevel,
  [out, optional]     DWORD            *pImpLevel,
  [out, optional]     RPC_AUTHZ_HANDLE *pPrivs,
  [in, out, optional] DWORD            *pCapabilities
);

パラメーター

[out, optional] pAuthnSvc

現在の認証サービスを受け取る変数へのポインター。 これは、 認証サービス定数から取得された 1 つの値になります。 呼び出し元が NULL を指定した場合、現在の認証サービスは取得されません。

[out, optional] pAuthzSvc

現在の承認サービスを受け取る変数へのポインター。 これは、 承認定数から取得された 1 つの値になります。 呼び出し元が NULL を指定した場合、現在の承認サービスは取得されません。

[out, optional] pServerPrincName

現在のプリンシパル名。 文字列は、 CoTaskMemAlloc を使用して呼び出し先によって割り当てられ、 CoTaskMemFree を使用して呼び出し元によって解放される必要があります。 既定では、Schannel プリンシパル名は msstd 形式になります。 pCapabilities パラメーターでEOAC_MAKE_FULLSICが指定されている場合は、完全形式が返されます。 msstd フォームと fullsic フォームの詳細については、「 プリンシパル名」を参照してください。 呼び出し元が NULL を指定した場合、現在のプリンシパル名は取得されません。

[out, optional] pAuthnLevel

現在の認証レベルを受け取る変数へのポインター。 これは、 認証レベルの定数から取得された 1 つの値になります。 呼び出し元が NULL を指定した場合、現在の認証レベルは取得されません。

[out, optional] pImpLevel

このパラメーターは NULL である必要があります。

[out, optional] pPrivs

クライアント アプリケーションの特権情報を受け取るハンドルへのポインター。 ハンドルが参照する構造体の形式は、認証サービスによって異なります。 アプリケーションでメモリを書き込んだり解放したりしないでください。 この情報は、現在の呼び出しの期間中のみ有効です。 NTLMSSP と Kerberos の場合、これはクライアント プリンシパルを識別する文字列です。 Schannel の場合、これはクライアントの証明書を表す CERT_CONTEXT 構造体です。 クライアントに証明書がない場合は、 NULL が返されます。 呼び出し元が NULL を指定した場合、現在の特権情報は取得されません。 「RPC_AUTHZ_HANDLE」を参照してください。

[in, out, optional] pCapabilities

呼び出しの機能を示すフラグを返すポインター。 Schannel が認証サービスである場合にプリンシパル名を完全形式で返すように要求するには、呼び出し元はこのパラメーターで EOAC_MAKE_FULLSIC フラグを設定できます。 呼び出し元が NULL を指定した場合、現在の機能は取得されません。

戻り値

この関数は、E_INVALIDARG、E_OUTOFMEMORY、S_OKの標準戻り値を返すことができます。

解説

CoQueryClientBlanket は、現在のスレッドで実行されているメソッドを呼び出したクライアントに関するセキュリティ情報を取得するために、サーバーによって呼び出されます。 この関数は、次の一連の一般的な呼び出しをカプセル化します (エラー処理は除外されます)。

    CoGetCallContext(IID_IServerSecurity, (void**)&pss);
    pss->QueryBlanket(pAuthnSvc, pAuthzSvc, pServerPrincName, 
                pAuthnLevel, pImpLevel, pPrivs, pCapabilities);
    pss->Release();

このシーケンスは 、CoGetCallContext を呼び出して IServerSecurity へのポインターを取得し、結果のポインターを使用して IServerSecurity::QueryBlanket を呼び出し、ポインターを解放します。

要件

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

関連項目

CoGetCallContext

CoQueryProxyBlanket

IServerSecurity::QueryBlanket

COM のセキュリティ