coQueryProxyBlanket 函式 (combaseapi.h)
擷取用戶端用來在指定的 Proxy 上呼叫的驗證資訊。 這是 IClientSecurity::QueryBlanket 的協助程式函式。
語法
HRESULT CoQueryProxyBlanket(
[in] IUnknown *pProxy,
[out, optional] DWORD *pwAuthnSvc,
[out, optional] DWORD *pAuthzSvc,
[out, optional] LPOLESTR *pServerPrincName,
[out, optional] DWORD *pAuthnLevel,
[out, optional] DWORD *pImpLevel,
[out, optional] RPC_AUTH_IDENTITY_HANDLE *pAuthInfo,
[out, optional] DWORD *pCapabilites
);
參數
[in] pProxy
指標,表示要查詢的 Proxy。 此參數不可為 NULL。 如需詳細資訊,請參閱<備註>一節。
[out, optional] pwAuthnSvc
接收目前驗證服務的變數指標。 這會是取自 驗證服務常數的單一值。 此參數不可為 NULL。
[out, optional] pAuthzSvc
接收目前授權服務的變數指標。 這會是取自 授權常數的單一值。 如果呼叫端指定 NULL,則不會擷取目前的授權服務。
[out, optional] pServerPrincName
目前的主體名稱。 字串將由使用 CoTaskMemAlloc 的被呼叫者配置,而且必須由呼叫端使用 CoTaskMemFree 釋放。 pCapabilities 參數中不接受EOAC_MAKE_FULLSIC旗標。 如需 msstd 和 fullsic 窗體的詳細資訊,請參閱 主體名稱。 如果呼叫端指定 NULL,則不會擷取目前的主體名稱。
[out, optional] pAuthnLevel
接收目前驗證層級之變數的指標。 這會是取自 驗證層級常數的單一值。 如果呼叫端指定 NULL,則不會擷取目前的驗證層級。
[out, optional] pImpLevel
接收目前模擬層級之變數的指標。 這會是取自 模擬層級常數的單一值。 如果呼叫端指定 NULL,則不會擷取目前的模擬層級。
[out, optional] pAuthInfo
接收傳遞至最後 一個 IClientSecurity::SetBlanket 呼叫之用戶端身分識別的句柄指標, (或預設值) 。 只有在釋放 Proxy 之前,預設值才有效。 如果呼叫端指定 NULL,則不會擷取用戶端身分識別。 句柄所參考的結構格式取決於驗證服務。 應用程式不應該寫入或釋放記憶體。 針對 NTLMSSP 和 Kerberos,如果用戶端在 pAuthInfo 參數中指定結構給 CoInitializeSecurity,則會傳回該值。 針對安全通道,如果可從憑證管理員擷取客戶端的憑證,則會在此傳回該值。 否則會傳回 NULL 。 請參閱 RPC_AUTH_IDENTITY_HANDLE。
[out, optional] pCapabilites
接收 Proxy 功能的變數指標。 如果呼叫端指定 NULL,則不會擷取目前的功能旗標。
傳回值
此函式可以傳回標準傳回值E_INVALIDARG、E_OUTOFMEMORY和S_OK。
備註
用戶端會呼叫 CoQueryProxyBlanket 來擷取驗證資訊 COM 將在從指定的 Proxy 進行的呼叫上使用。 此函式會封裝下列常見呼叫序列, (排除的錯誤處理) :
pProxy->QueryInterface(IID_IClientSecurity, (void**)&pcs);
pcs->QueryBlanket(
pProxy, pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel, pImpLevel, ppAuthInfo, pCapabilities
);
pcs->Release();
此順序會在 Proxy 上呼叫 QueryInterface 以取得 IClientSecurity 的指標,並使用產生的指標呼叫 IClientSecurity::QueryBlanket ,然後釋放指標。
在 pProxy 中,您可以傳遞任何 Proxy,例如透過 呼叫 CoCreateInstance 或 CoUnmarshalInterface 取得的 Proxy,也可以傳遞介面指標。 它可以是任何介面。 您無法將指標傳遞至不是 Proxy 的內容。 因此,您無法將指標傳遞至介面定義中有local關鍵詞的介面,因為不會為這類介面建立 Proxy。 IUnknown 是此規則的例外狀況。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | combaseapi.h (包含 Objbase.h) |
程式庫 | Ole32.lib |
Dll | Ole32.dll |