次の方法で共有


IClientSecurity::QueryBlanket メソッド (objidl.h)

指定したプロキシで呼び出しを行うためにクライアントが使用する認証情報を取得します。

構文

HRESULT QueryBlanket(
  [in]  IUnknown *pProxy,
  [out] DWORD    *pAuthnSvc,
  [out] DWORD    *pAuthzSvc,
  [out] OLECHAR  **pServerPrincName,
  [out] DWORD    *pAuthnLevel,
  [out] DWORD    *pImpLevel,
  [out] void     **pAuthInfo,
  [out] DWORD    *pCapabilites
);

パラメーター

[in] pProxy

プロキシへのポインター。 このパラメーターを NULL にすることはできません。 詳細については、「解説」を参照してください。

[out] pAuthnSvc

現在の認証サービス。 これは、 認証サービス定数の一覧から取得された 1 つの値になります。 このパラメーターを NULL にすることはできません。

[out] pAuthzSvc

現在の承認サービス。 これは、 承認定数の一覧から取得された 1 つの値になります。 このパラメーターを NULL にすることはできません。

[out] pServerPrincName

現在のプリンシパル名。 文字列は、 CoTaskMemAlloc 関数を使用して呼び出し先によって割り当てられ、 CoTaskMemFree 関数を使用して呼び出し元によって解放される必要があります。 実際のプリンシパル名が返されることに注意してください。 prinicpal 名の変換には、EOAC_MAKE_FULLSIC フラグは受け入れられません。 呼び出し元が NULL を指定した場合、現在のプリンシパル名は取得されません。

[out] pAuthnLevel

現在の認証レベル。 これは、 認証レベル定数の一覧から取得された 1 つの値になります。 このパラメーターが NULL の場合、現在の認証レベルは取得されません。

[out] pImpLevel

現在の偽装レベル。 これは、 偽装レベル定数の一覧から取得された 1 つの値になります。 このパラメーターが NULL の場合、現在の偽装レベルは取得されません。

[out] pAuthInfo

最後の IClientSecurity::SetBlanket 呼び出し (または既定値) に渡されたクライアントの ID を示すハンドルへのポインター。 既定値は、プロキシが解放されるまで有効です。 呼び出し元が NULL を指定した場合、クライアント ID は取得されません。

返されるハンドルが参照する構造体の形式は、認証サービスによって異なります。 NTLMSSP と Kerberos の場合、クライアントが pAuthInfo パラメーターで CoInitializeSecurity に構造体を指定した場合、その値が返されます。 Schannel の場合、クライアントの証明書を証明書マネージャーから取得できる場合、その値はここで返されます。 それ以外の場合は、 NULL が返されます。 これは値自体を指し、コピーではないので、操作したり解放したりしないでください。

[out] pCapabilites

プロキシの機能。 これらのフラグは、 EOLE_AUTHENTICATION_CAPABILITIES 列挙体で定義されます。 このパラメーターが NULL の場合、現在の機能フラグは取得されません。

戻り値

このメソッドは、次の値を返すことができます。

リターン コード 説明
S_OK
メソッドは正常に完了しました。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
pServerPrincName バッファーを作成するためのメモリが不足しています。

注釈

QueryBlanket は、指定されたインターフェイス プロキシから行われた呼び出しで COM が使用する認証情報を取得するためにクライアントによって呼び出されます。 プロキシ上のインターフェイスへのポインターを使用すると、クライアントは最初に QueryInterface を 呼び出して IClientSecurity へのポインターを呼び出します。次に、このポインターを使用して、クライアントは QueryBlanket を呼び出し、その後ポインターを解放します。 この一連の呼び出しは、ヘルパー関数 CoQueryProxyBlanket にカプセル化されます。

pProxy では、インターフェイス ポインターを渡します。 ただし、プロキシを使用しないインターフェイスにポインターを渡すことはできません。 そのため、インターフェイス定義にローカル キーワード (keyword)を持つインターフェイスへのポインターを渡すことはできません。このようなインターフェイスにはプロキシが作成されません。 IUnknown は、この規則の例外です。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー objidl.h (ObjIdl.h を含む)

こちらもご覧ください

CoQueryProxyBlanket

CoSetProxyBlanket

IClientSecurity