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,例如透過 呼叫 CoCreateInstanceCoUnmarshalInterface 取得的 Proxy,也可以傳遞介面指標。 它可以是任何介面。 您無法將指標傳遞至不是 Proxy 的內容。 因此,您無法將指標傳遞至介面定義中有local關鍵詞的介面,因為不會為這類介面建立 Proxy。 IUnknown 是此規則的例外狀況。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 combaseapi.h (包含 Objbase.h)
程式庫 Ole32.lib
Dll Ole32.dll

另請參閱

CoQueryClientBlanket

CoSetProxyBlanket

IClientSecurity::QueryBlanket

COM 中的安全性