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,則不會擷取目前的功能旗標。
傳回值
這個方法可以傳回下列值。
傳回碼 | 描述 |
---|---|
|
已成功完成命令。 |
|
一或多個自變數無效。 |
|
記憶體不足,無法建立 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) |