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


Функция QueryContextAttributesA (sspi.h)

Функция QueryContextAttributes (CredSSP) позволяет транспортному приложению запрашивать пакет безопасности поставщика поддержки учетных данных (CredSSP) для получения определенных атрибутовконтекста безопасности.

Синтаксис

SECURITY_STATUS SEC_ENTRY QueryContextAttributesA(
  [in]  PCtxtHandle   phContext,
  [in]  unsigned long ulAttribute,
  [out] void          *pBuffer
);

Параметры

[in] phContext

Дескриптор контекста безопасности для запроса.

[in] ulAttribute

Атрибут возвращаемого контекста. Этот параметр может принимать одно из указанных ниже значений. Если не указано иное, атрибуты применимы как к клиенту, так и к серверу.

Значение Значение
SECPKG_ATTR_C_ACCESS_TOKEN
0x80000012
Параметр pBuffer содержит указатель на структуру SecPkgContext_AccessToken , указывающую маркер доступа для текущего контекста безопасности.

Этот атрибут поддерживается только на сервере.

SECPKG_ATTR_C_FULL_ACCESS_TOKEN
0x80000082
Параметр pBuffer содержит указатель на структуру SecPkgContext_AccessToken , указывающую маркер доступа для текущего контекста безопасности.

Этот атрибут поддерживается только на сервере.

SECPKG_ATTR_CERT_TRUST_STATUS
0x80000084
Параметр pBuffer содержит указатель на структуру CERT_TRUST_STATUS , указывающую сведения о доверии к сертификату.

Этот атрибут поддерживается только в клиенте.

SECPKG_ATTR_CREDS
0x80000080
Параметр pBuffer содержит указатель на структуру SecPkgContext_ClientCreds , указывающую учетные данные клиента.

Учетные данные клиента могут быть либо именем пользователя и паролем, либо именем пользователя и смарт-карта ПИН-кодом.

Этот атрибут поддерживается только на сервере.

SECPKG_ATTR_CREDS_2
0x80000086
Параметр pBuffer содержит указатель на структуру SecPkgContext_ClientCreds , указывающую учетные данные клиента.

Если учетные данные клиента — имя пользователя и пароль, буфер представляет собой упакованную KERB_INTERACTIVE_LOGON структуру.

Если учетные данные клиента — это имя пользователя, а смарт-код карта ПИН-код, буфер представляет собой упакованную KERB_CERTIFICATE_LOGON структуру.

Если учетные данные клиента являются сетевыми учетными данными удостоверения, буфер представляет собой маршалированную структуру SEC_WINNT_AUTH_IDENTITY_EX2 .

Этот атрибут поддерживается только на сервере CredSSP.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается.

SECPKG_ATTR_NEGOTIATION_PACKAGE
0x80000081
Параметр pBuffer содержит указатель на структуру >SecPkgContext_PackageInfo SecPkgContext_PackageInfo , указывающую имя пакета проверки подлинности, согласованного поставщиком Microsoft Negotiate .
SECPKG_ATTR_PACKAGE_INFO
10
Параметр pBuffer содержит указатель на структуру >SecPkgContext_PackageInfo SecPkgContext_PackageInfo .

Возвращает сведения об используемом поставщике общих служб.

SECPKG_ATTR_SERVER_AUTH_FLAGS
0x80000083
Параметр pBuffer содержит указатель на структуру SecPkgContext_Flags , указывающую сведения о флагах в текущем контексте безопасности.

Этот атрибут поддерживается только в клиенте.

SECPKG_ATTR_SIZES
0x0
Параметр pBuffer содержит указатель на структуру SecPkgContext_Sizes .

Запрашивает размеры структур, используемых в функциях каждого сообщения и обмене проверкой подлинности.

SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES
124
Параметр pBuffer содержит указатель на структуру SecPkgContext_SubjectAttributes .

Это значение возвращает сведения об атрибутах безопасности для подключения.

Это значение поддерживается только на сервере CredSSP.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается.

[out] pBuffer

Указатель на структуру, получающую атрибуты. Тип структуры зависит от значения параметра ulAttribute .

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

Если функция выполняется успешно, она возвращает SEC_E_OK.

Если функция завершается сбоем, она может вернуть следующие коды ошибок.

Возвращаемый код или значение Описание
SEC_E_INVALID_HANDLE
0x80100003
Сбой функции. Параметр phContext указывает дескриптор для неполного контекста.
SEC_E_UNSUPPORTED_FUNCTION
0x80090302
Сбой функции. Недопустимое значение параметра ulAttribute .

Комментарии

Структура, на которую указывает параметр pBuffer , зависит от запрашиваемого атрибута.

Хотя вызывающий объект должен выделить саму структуру pBuffer , поставщик SSP выделяет любую память, необходимую для хранения элементов структуры pBuffer переменной величины. Память, выделенную поставщиком общих служб, должна быть освобождена путем вызова функции FreeContextBuffer .

Примечание

Заголовок sspi.h определяет QueryContextAttributes в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header sspi.h (включая Security.h)
Библиотека Secur32.lib
DLL Secur32.dll

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

CERT_CONTEXT

FreeContextBuffer

Функции SSPI

SecPkgContext_ClientCreds

SecPkgContext_Sizes