Поделиться через


Метод IClientSecurity::QueryBlanket (objidl.h)

Извлекает сведения о проверке подлинности, которые клиент использует для выполнения вызовов указанного прокси-сервера.

Синтаксис

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

Указатель на прокси-сервер. Этот параметр не может иметь значение 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 (или значение по умолчанию). Значения по умолчанию действительны только до тех пор, пока прокси-сервер не будет освобожден. Если вызывающий объект задает значение NULL, удостоверение клиента не извлекается.

Формат структуры, на которую ссылается возвращенный дескриптор, зависит от службы проверки подлинности. Для NTLMSSP и Kerberos, если клиент указал структуру в параметре pAuthInfoдля CoInitializeSecurity, это значение возвращается. Для Schannel, если сертификат для клиента можно получить из диспетчера сертификатов, это значение возвращается здесь. В противном случае возвращается значение NULL . Так как это указывает на само значение и не является копией, его не следует манипулировать или освобождать.

[out] pCapabilites

Возможности прокси-сервера. Эти флаги определены в перечислении EOLE_AUTHENTICATION_CAPABILITIES . Если этот параметр имеет значение NULL, текущие флаги возможностей не извлекаются.

Возвращаемое значение

Этот метод может возвращать следующие значения.

Код возврата Описание
S_OK
Метод завершился успешно.
E_INVALIDARG
Один или несколько аргументов недопустимы.
E_OUTOFMEMORY
Недостаточно памяти для создания буфера pServerPrincName .

Комментарии

QueryBlanket вызывается клиентом для получения сведений о проверке подлинности, которые COM будет использовать при вызовах из указанного прокси-сервера интерфейса. С указателем на интерфейс на прокси-сервере клиент сначала вызывает QueryInterface для указателя на IClientSecurity; затем с помощью этого указателя клиент вызывает QueryBlanket, а затем освобождает указатель. Эта последовательность вызовов инкапсулируется во вспомогательной функции CoQueryProxyBlanket.

В pProxy передается указатель интерфейса. Однако невозможно передать указатель на интерфейс, который не использует прокси-сервер. Таким образом, невозможно передать указатель на интерфейс с локальным ключевое слово в определении интерфейса, так как для такого интерфейса не создается прокси-сервер. IUnknown является исключением из этого правила.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header objidl.h (включая ObjIdl.h)

См. также раздел

CoQueryProxyBlanket

CoSetProxyBlanket

IClientSecurity