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 |