IServerSecurity::QueryBlanket 方法 (objidlbase.h)
擷取叫用其中一個伺服器方法之客戶端的相關信息。
語法
HRESULT QueryBlanket(
[out] DWORD *pAuthnSvc,
[out] DWORD *pAuthzSvc,
[out] OLECHAR **pServerPrincName,
[out] DWORD *pAuthnLevel,
[out] DWORD *pImpLevel,
[out] void **pPrivs,
[in, out] DWORD *pCapabilities
);
參數
[out] pAuthnSvc
目前驗證服務的指標。 這會是取自 驗證服務常數清單的單一值。 如果呼叫端指定 NULL,則不會擷取目前的驗證服務。
[out] pAuthzSvc
接收目前授權服務的變數指標。 這會是 授權常數清單中的單一值。 如果呼叫端指定 NULL,則不會擷取目前的授權服務。
[out] pServerPrincName
目前的主體名稱。 字串將由使用 CoTaskMemAlloc 的被呼叫者配置,而且必須由使用 CoTaskMemFree 的呼叫端釋出。 根據預設,Schannel 主體名稱會採用 msstd 格式。 如果 pCapabilities 參數中指定了 EOAC_MAKE_FULLSIC,則會傳回 fullsic 窗體。 如需 msstd 和 fullsic 窗體的詳細資訊,請參閱 主體名稱。 如果呼叫端指定 NULL,則不會擷取目前的主體名稱。
[out] pAuthnLevel
接收目前驗證層級之變數的指標。 這會是取自 驗證層級常數清單的單一值。 如果呼叫端指定 NULL,則不會擷取目前的驗證層級。
[out] pImpLevel
此參數必須是 NULL。
[out] pPrivs
用戶端應用程式的許可權資訊。 句柄所參考的結構格式取決於驗證服務。 應用程式不應該寫入或釋放記憶體。 此資訊只有在目前呼叫的持續時間才有效。 針對 NTLMSSP 和 Kerberos,這是 SEC_WINNT_AUTH_IDENTITY 或 SEC_WINNT_AUTH_IDENTITY_EX 結構。 針對 Schannel,這是代表用戶端憑證 的CERT_CONTEXT 結構。 如果客戶端沒有憑證,則會傳回 NULL 。 如果呼叫端指定 NULL,則不會擷取目前的許可權資訊。
[in, out] pCapabilities
呼叫的功能。 若要要求如果 Schannel 是驗證服務,則會以完整形式傳回主體名稱,呼叫端可以在此參數中設定EOAC_MAKE_FULLSIC旗標。 如果呼叫端指定 NULL,則不會擷取目前的功能。
傳回值
這個方法可以傳回標準傳回值E_INVALIDARG、E_OUTOFMEMORY和S_OK。
備註
QueryBlanket 是由伺服器用來找出叫用其中一個方法的用戶端。 若要取得目前線程上目前呼叫的 IServerSecurity 指標,請呼叫 CoGetCallContext,並指定IID_IServerSecurity。 這個介面指標只能用於與呼叫持續時間相同的 Apartment 中。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | objidlbase.h (包含 ObjIdl.h) |