Метод 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, текущие флаги возможностей не извлекаются.
Возвращаемое значение
Этот метод может возвращать следующие значения.
Код возврата | Описание |
---|---|
|
Метод завершился успешно. |
|
Один или несколько аргументов недопустимы. |
|
Недостаточно памяти для создания буфера pServerPrincName . |
Комментарии
QueryBlanket вызывается клиентом для получения сведений о проверке подлинности, которые COM будет использовать при вызовах из указанного прокси-сервера интерфейса. С указателем на интерфейс на прокси-сервере клиент сначала вызывает QueryInterface для указателя на IClientSecurity; затем с помощью этого указателя клиент вызывает QueryBlanket, а затем освобождает указатель. Эта последовательность вызовов инкапсулируется во вспомогательной функции CoQueryProxyBlanket.
В pProxy передается указатель интерфейса. Однако невозможно передать указатель на интерфейс, который не использует прокси-сервер. Таким образом, невозможно передать указатель на интерфейс с локальным ключевое слово в определении интерфейса, так как для такого интерфейса не создается прокси-сервер. IUnknown является исключением из этого правила.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | objidl.h (включая ObjIdl.h) |