coQueryClientBlanket 函式 (combaseapi.h)

由伺服器呼叫,以瞭解叫用目前線程上執行之方法的用戶端。 這是 IServerSecurity::QueryBlanket的協助程式函式。

語法

HRESULT CoQueryClientBlanket(
  [out, optional]     DWORD            *pAuthnSvc,
  [out, optional]     DWORD            *pAuthzSvc,
  [out, optional]     LPOLESTR         *pServerPrincName,
  [out, optional]     DWORD            *pAuthnLevel,
  [out, optional]     DWORD            *pImpLevel,
  [out, optional]     RPC_AUTHZ_HANDLE *pPrivs,
  [in, out, optional] DWORD            *pCapabilities
);

參數

[out, optional] pAuthnSvc

接收目前驗證服務的變數指標。 這會是取自 驗證服務常數的單一值。 如果呼叫端指定 Null,則不會擷取目前的驗證服務。

[out, optional] pAuthzSvc

接收目前授權服務的變數指標。 這會是取自 授權常數的單一值。 如果呼叫端指定 Null,則不會擷取目前的授權服務。

[out, optional] pServerPrincName

目前的主體名稱。 字串將由使用 CoTaskMemAlloc的被呼叫者配置,而且必須由呼叫端使用 CoTaskMemFree釋放。 根據預設,Schannel 主體名稱會採用 msstd 格式。 如果在 pCapabilities 參數中指定EOAC_MAKE_FULLSIC,則會傳回 fullsic 表單。 如需 msstd 和 fullsic 表單的詳細資訊,請參閱 主體名稱。 如果呼叫端指定 Null,則不會擷取目前的主體名稱。

[out, optional] pAuthnLevel

接收目前驗證層級之變數的指標。 這會是取自 驗證層級常數的單一值。 如果呼叫端指定 Null,則不會擷取目前的驗證層級。

[out, optional] pImpLevel

此參數必須是 Null

[out, optional] pPrivs

接收用戶端應用程式許可權資訊的控制碼指標。 控制碼所參考的結構格式取決於驗證服務。 應用程式不應該寫入或釋放記憶體。 此資訊只有在目前呼叫的持續時間才有效。 針對 NTLMSSP 和 Kerberos,這是識別用戶端主體的字串。 對於安全通道,這是代表用戶端憑證的 CERT_CONTEXT 結構。 如果用戶端沒有憑證,則會傳回 Null 。 如果呼叫端指定 Null,則不會擷取目前的許可權資訊。 請參閱 RPC_AUTHZ_HANDLE

[in, out, optional] pCapabilities

傳回旗標的指標,表示呼叫的功能。 若要要求如果 Schannel 是驗證服務,則會以完整形式傳回主體名稱,呼叫端可以在此參數中設定EOAC_MAKE_FULLSIC旗標。 如果呼叫端指定 Null,則不會擷取目前的功能。

傳回值

此函式可以傳回標準傳回值E_INVALIDARG、E_OUTOFMEMORY和S_OK。

備註

伺服器會呼叫CoQueryClientBlanket,以取得叫用目前線程上執行之方法之用戶端的安全性資訊。 此函式會封裝下列常見呼叫序列, (排除的錯誤處理) :

    CoGetCallContext(IID_IServerSecurity, (void**)&pss);
    pss->QueryBlanket(pAuthnSvc, pAuthzSvc, pServerPrincName, 
                pAuthnLevel, pImpLevel, pPrivs, pCapabilities);
    pss->Release();

此順序會呼叫 CoGetCallCoNtext 以取得 IServerSecurity 的指標,並使用產生的指標呼叫 IServerSecurity::QueryBlanket ,然後釋放指標。

規格需求

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

另請參閱

CoGetCallCoNtext

CoQueryProxyBlanket

IServerSecurity::QueryBlanket

COM 中的安全性