共用方式為


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,則會傳回該值。 針對安全通道,如果可從憑證管理員擷取客戶端的憑證,則會在此傳回該值。 否則會傳回 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