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


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

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

Синтаксис

KSECDDDECLSPEC SECURITY_STATUS SEC_ENTRY QueryContextAttributesW(
  [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, которая указывает имя пакета проверки подлинности, согласованного поставщиком Microsoft Negotiate.
SECPKG_ATTR_PACKAGE_INFO
10
Параметр pBuffer содержит указатель на структуру SecPkgContext_PackageInfo.

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

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, SSP выделяет любую память, необходимую для хранения элементов pBuffer. Память, выделенная поставщиком служб SSP, должна быть освобождена путем вызова функции FreeContextBuffer.

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2008 [только классические приложения]
целевая платформа Виндоус
заголовка sspi.h (include Security.h)
библиотеки Secur32.lib
DLL Secur32.dll

См. также

CERT_CONTEXT

FreeContextBuffer

функций SSPI

SecPkgContext_ClientCreds

SecPkgContext_Sizes