IClientSecurity::QueryBlanket 方法 (objidl.h)
擷取用戶端用來在指定 Proxy 上進行呼叫的驗證資訊。
語法
HRESULT QueryBlanket(
[in] IUnknown *pProxy,
[out] DWORD *pAuthnSvc,
[out] DWORD *pAuthzSvc,
[out] OLECHAR **pServerPrincName,
[out] DWORD *pAuthnLevel,
[out] DWORD *pImpLevel,
[out] void **pAuthInfo,
[out] DWORD *pCapabilites
);
參數
[in] pProxy
Proxy 的指標。 此參數不可為 Null。 如需詳細資訊,請參閱<備註>一節。
[out] pAuthnSvc
目前的驗證服務。 這會是取自 驗證服務常數清單的單一值。 此參數不可為 Null。
[out] pAuthzSvc
目前的授權服務。 這會是取自 授權常數清單的單一值。 此參數不可為 Null。
[out] pServerPrincName
目前的主體名稱。 字串將由使用 CoTaskMemAlloc 函式的被呼叫端配置,而且必須使用 CoTaskMemFree 函式來釋放呼叫端。 請注意,會傳回實際的主體名稱。 不接受EOAC_MAKE_FULLSIC旗標來轉換 prinicpal 名稱。 如果呼叫端指定 Null,則不會擷取目前的主體名稱。
[out] pAuthnLevel
目前的驗證層級。 這會是取自 驗證層級常數清單的單一值。 如果此參數為 Null,則不會擷取目前的驗證層級。
[out] pImpLevel
目前的模擬層級。 這是從 模擬層級常數清單取得的單一值。 如果此參數為 Null,則不會擷取目前的模擬層級。
[out] pAuthInfo
控制碼的指標,指出傳遞至最後一個 IClientSecurity::SetBlanket 呼叫的用戶端身分識別, (或預設值) 。 預設值只有在發行 Proxy 之前才有效。 如果呼叫端指定 Null,則不會擷取用戶端身分識別。
傳回控制碼所參考的結構格式取決於驗證服務。 針對 NTLMSSP 和 Kerberos,如果用戶端在 pAuthInfo 參數中指定了結構給 CoInitializeSecurity,則會傳回該值。 針對 Schannel,如果可從憑證管理員擷取用戶端的憑證,則會在此傳回該值。 否則會傳回 Null 。 因為這會指向值本身,而不是複本,所以不應該操作或釋放它。
[out] pCapabilites
Proxy 的功能。 這些旗標定義于 EOLE_AUTHENTICATION_CAPABILITIES 列舉中。 如果此參數為 Null,則不會擷取目前的功能旗標。
傳回值
這個方法可以傳回下列值。
傳回碼 | 描述 |
---|---|
|
已成功完成命令。 |
|
一或多個引數無效。 |
|
記憶體不足,無法建立 pServerPrincName 緩衝區。 |
備註
QueryBlanket 是由用戶端呼叫,以擷取驗證資訊 COM 將在從指定的介面 Proxy 進行的呼叫上使用。 使用 Proxy 上介面的指標時,用戶端會先呼叫 QueryInterface ,以取得 IClientSecurity的指標;然後,透過這個指標,用戶端會呼叫 QueryBlanket,後面接著釋放指標。 這個呼叫序列會封裝在協助程式函式 CoQueryProxyBlanket中。
在 pProxy中,您會傳遞介面指標。 不過,您無法將指標傳遞至不使用 Proxy 的介面。 因此,您無法將指標傳遞至介面定義中具有 local 關鍵字的介面,因為不會為這類介面建立任何 Proxy。 IUnknown 是此規則的例外狀況。
規格需求
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式|UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式|UWP 應用程式] |
目標平臺 | Windows |
標頭 | objidl.h (包含 ObjIdl.h) |