IServerSecurity::QueryBlanket 方法 (objidl.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_IDENTITYSEC_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
標頭 objidl.h (包含 ObjIdl.h)

另請參閱

CoQueryClientBlanket

CoQueryProxyBlanket

IServerSecurity