IClientSecurity::QueryBlanket 方法 (objidl.h)

擷取用戶端用來在指定 Proxy 上進行呼叫的驗證資訊。

語法

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

Proxy 的指標。 此參數不可為 Null。 如需詳細資訊,請參閱<備註>一節。

[out] pAuthnSvc

目前的驗證服務。 這會是取自 驗證服務常數清單的單一值。 此參數不可為 Null

[out] pAuthzSvc

目前的授權服務。 這會是取自 授權常數清單的單一值。 此參數不可為 Null

[out] pServerPrincName

目前的主體名稱。 字串將由使用 CoTaskMemAlloc 函式的被呼叫端配置,而且必須使用 CoTaskMemFree 函式來釋放呼叫端。 請注意,會傳回實際的主體名稱。 不接受EOAC_MAKE_FULLSIC旗標來轉換 prinicpal 名稱。 如果呼叫端指定 Null,則不會擷取目前的主體名稱。

[out] pAuthnLevel

目前的驗證層級。 這會是取自 驗證層級常數清單的單一值。 如果此參數為 Null,則不會擷取目前的驗證層級。

[out] pImpLevel

目前的模擬層級。 這是從 模擬層級常數清單取得的單一值。 如果此參數為 Null,則不會擷取目前的模擬層級。

[out] pAuthInfo

控制碼的指標,指出傳遞至最後一個 IClientSecurity::SetBlanket 呼叫的用戶端身分識別, (或預設值) 。 預設值只有在發行 Proxy 之前才有效。 如果呼叫端指定 Null,則不會擷取用戶端身分識別。

傳回控制碼所參考的結構格式取決於驗證服務。 針對 NTLMSSP 和 Kerberos,如果用戶端在 pAuthInfo 參數中指定了結構給 CoInitializeSecurity,則會傳回該值。 針對 Schannel,如果可從憑證管理員擷取用戶端的憑證,則會在此傳回該值。 否則會傳回 Null 。 因為這會指向值本身,而不是複本,所以不應該操作或釋放它。

[out] pCapabilites

Proxy 的功能。 這些旗標定義于 EOLE_AUTHENTICATION_CAPABILITIES 列舉中。 如果此參數為 Null,則不會擷取目前的功能旗標。

傳回值

這個方法可以傳回下列值。

傳回碼 描述
S_OK
已成功完成命令。
E_INVALIDARG
一或多個引數無效。
E_OUTOFMEMORY
記憶體不足,無法建立 pServerPrincName 緩衝區。

備註

QueryBlanket 是由用戶端呼叫,以擷取驗證資訊 COM 將在從指定的介面 Proxy 進行的呼叫上使用。 使用 Proxy 上介面的指標時,用戶端會先呼叫 QueryInterface ,以取得 IClientSecurity的指標;然後,透過這個指標,用戶端會呼叫 QueryBlanket,後面接著釋放指標。 這個呼叫序列會封裝在協助程式函式 CoQueryProxyBlanket中。

pProxy中,您會傳遞介面指標。 不過,您無法將指標傳遞至不使用 Proxy 的介面。 因此,您無法將指標傳遞至介面定義中具有 local 關鍵字的介面,因為不會為這類介面建立任何 Proxy。 IUnknown 是此規則的例外狀況。

規格需求

   
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式|UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式|UWP 應用程式]
目標平臺 Windows
標頭 objidl.h (包含 ObjIdl.h)

另請參閱

CoQueryProxyBlanket

CoSetProxyBlanket

IClientSecurity