Функция QueryContextAttributes (Schannel)
Функция QueryContextAttributes (Schannel) позволяет транспортному приложению запрашивать пакет безопасности Schannel для определенных атрибутовконтекста безопасности.
Синтаксис
SECURITY_STATUS SEC_ENTRY QueryContextAttributes(
_In_ PCtxtHandle phContext,
_In_ ULONG ulAttribute,
_Out_ PVOID pBuffer
);
Параметры
-
phContext [in]
-
Дескриптор контекста безопасности для запроса.
-
ulAttribute [in]
-
Указывает атрибут возвращаемого контекста. Этот параметр может принимать одно из указанных ниже значений.
Значение Значение - SECPKG_ATTR_ACCESS_TOKEN
- 13
Параметр pBuffer содержит указатель на структуру SecPkgContext_AccessToken .
Возвращает дескриптор маркера доступа.- SECPKG_ATTR_APP_DATA
- 0x5e
Параметр pBuffer содержит указатель на структуру SecPkgContext_SessionAppData .
Возвращает или задает данные приложения для сеанса.
Этот атрибут поддерживается только пакетом безопасности Schannel.- SECPKG_ATTR_AUTHORITY
- 6
Параметр pBuffer содержит указатель на структуру SecPkgContext_Authority .
Запрашивает имя центра проверки подлинности.- SECPKG_ATTR_CIPHER_INFO
- 0x64
Параметр pBuffer содержит указатель на структуру SecPkgContext_CipherInfo .
Возвращает новую структуру сведений о шифре CNG.- SECPKG_ATTR_CONNECTION_INFO
- 0x5a
Параметр pBuffer содержит указатель на структуру SecPkgContext_ConnectionInfo .
Возвращает подробные сведения об установленном подключении.- SECPKG_ATTR_KEYING_MATERIAL
- 0x6b
Параметр pBuffer содержит указатель на структуру SecPkgContext_KeyingMaterial . Функция экспорта материалов ключей соответствует стандарту RFC 5705.
Запрос этого атрибута до создания секрета master или до задания атрибута SECPKG_ATTR_KEYING_MATERIAL_INFO приводит к ошибке.
Этот атрибут поддерживается только пакетом безопасности Schannel в Windows 10 и Windows Server 2016 или более поздних версиях.- 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_DCE_INFO
- 3
Параметр pBuffer содержит указатель на структуру SecPkgContext_DceInfo .
Запросы данных авторизации, используемых службами DCE.- SECPKG_ATTR_EAP_KEY_BLOCK
- 0x5b
Параметр pBuffer содержит указатель на структуру SecPkgContext_EapKeyBlock .
Запросы ключевых данных, используемых протоколом EAP TLS.
Этот атрибут поддерживается только пакетом безопасности Schannel.- SECPKG_ATTR_ENDPOINT_BINDINGS
- 26
Параметр pBuffer содержит указатель на структуру SecPkgContext_Bindings , которая содержит привязки каналов для TLS (RFC 5929).
Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается.- SECPKG_ATTR_FLAGS
- 14
Параметр pBuffer содержит указатель на структуру SecPkgContext_Flags .
Возвращает сведения о согласованных флагах контекста.- SECPKG_ATTR_ISSUER_LIST_EX
- 0x59
Параметр pBuffer содержит указатель на структуру SecPkgContext_IssuerListInfoEx .
Возвращает список издателей сертификатов, которые принимаются сервером.
Этот атрибут поддерживается только пакетом безопасности Schannel.- SECPKG_ATTR_KEY_INFO
- 5
Параметр pBuffer содержит указатель на структуру SecPkgContext_KeyInfo .
Запрашивает сведения о ключах, используемых в контексте безопасности.- SECPKG_ATTR_LIFESPAN
- 2
Параметр pBuffer содержит указатель на структуру SecPkgContext_Lifespan .
Запрашивает срок жизни контекста.- SECPKG_ATTR_LOCAL_CERT_CONTEXT
- 0x54
Параметр pBuffer содержит указатель на структуру PCCERT_CONTEXT.
Находит контекст сертификата, содержащий локальный конечный сертификат.
Этот атрибут поддерживается только пакетом безопасности Schannel.- SECPKG_ATTR_LOCAL_CRED
Параметр pBuffer содержит указатель на структуру SecPkgContext_LocalCredentialInfo . (Является устаревшим.)
Заменено SECPKG_ATTR_LOCAL_CERT_CONTEXT.- SECPKG_ATTR_NAMES
- 1
Параметр pBuffer содержит указатель на структуру SecPkgContext_Names .
Запрашивает имя, связанное с контекстом.- SECPKG_ATTR_NATIVE_NAMES
- 13
Параметр pBuffer содержит указатель на структуру SecPkgContext_NativeNames .
Возвращает имя участника (CNAME) из исходящего билета.- SECPKG_ATTR_NEGOTIATION_INFO
- 12
Параметр pBuffer содержит указатель на структуру SecPkgContext_NegotiationInfo .
Возвращает сведения о пакете безопасности , который будет использоваться в процессе согласования, и текущее состояние согласования для использования этого пакета.- SECPKG_ATTR_PACKAGE_INFO
- 10
Параметр pBuffer содержит указатель на структуру SecPkgContext_PackageInfo .
Возвращает сведения об используемом поставщике общих служб.- SECPKG_ATTR_PASSWORD_EXPIRY
- 8
Параметр pBuffer содержит указатель на структуру SecPkgContext_PasswordExpiry .
Возвращает сведения об истечении срока действия пароля.- SECPKG_ATTR_REMOTE_CERT_CONTEXT
- 0x53
Параметр pBuffer содержит указатель на структуру PCCERT_CONTEXT.
Находит контекст сертификата, содержащий конечный сертификат, предоставленный сервером.
Этот атрибут поддерживается только пакетом безопасности Schannel.- SECPKG_ATTR_ROOT_STORE
- 0x55
Параметр pBuffer содержит указатель на HCERTCONTEXT. Находит контекст сертификата, содержащий сертификат, предоставленный корневым хранилищем. - SECPKG_ATTR_SESSION_INFO
- 0x5d
Параметр pBuffer содержит указатель на структуру SecPkgContext_SessionInfo .
Возвращает сведения о сеансе.
Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается.- SECPKG_ATTR_SESSION_KEY
- 9
Параметр pBuffer содержит указатель на структуру SecPkgContext_SessionKey .
Возвращает сведения о ключах сеанса.- SECPKG_ATTR_SIZES
- 0
Параметр pBuffer содержит указатель на структуру SecPkgContext_Sizes .
Запрашивает размеры структур, используемых в функциях для каждого сообщения.- SECPKG_ATTR_STREAM_SIZES
- 4
Параметр pBuffer содержит указатель на структуру SecPkgContext_StreamSizes .
Запрашивает размеры различных частей потока, используемых в функциях для каждого сообщения.- SECPKG_ATTR_SUPPORTED_SIGNATURES
- 0x66
Параметр pBuffer содержит указатель на структуру SecPkgContext_SupportedSignatures .
Это значение возвращает сведения о типах подписей, поддерживаемых для подключения.
Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается.- SECPKG_ATTR_TARGET_INFORMATION
- 17
Параметр pBuffer содержит указатель на структуру SecPkgContext_TargetInformation .
Возвращает сведения об имени удаленного сервера.- SECPKG_ATTR_UNIQUE_BINDINGS
- 25
Параметр pBuffer содержит указатель на структуру SecPkgContext_Bindings , содержащую сведения о привязке канала.
Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается.- SECPKG_ATTR_APPLICATION_PROTOCOL
- 35
Параметр pBuffer содержит согласованный протокол приложения. - SECPKG_ATTR_DTLS_MTU
- 34
Задает и извлекает значение MTU (максимальная единица передачи) для использования с DTLS. Если DTLS не включен в контексте безопасности, этот атрибут не поддерживается.
Допустимые значения : от 200 до 64 килобайт. Значение MTU DTLS по умолчанию в Schannel равно 1096 байтам. -
pBuffer [out]
-
Указатель на структуру, которая получает атрибуты. Тип структуры, на который указывает , зависит от значения, указанного в параметре ulAttribute .
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение будет SEC_E_OK.
Если функция завершается сбоем, возвращаемое значение представляет собой ненулевой код ошибки.
Комментарии
Структура, на которую указывает параметр pBuffer , зависит от запрашиваемого атрибута. Вызывающий объект должен выделить саму структуру pBuffer , но поставщик общих служб выделяет любую память, необходимую для хранения элементов структуры pBuffer переменной величины. Завершив использование памяти, выделенной поставщиком общих служб, освободите ее, вызвав функцию FreeContextBuffer .
После считывания значения SECPKG_ATTR_REMOTE_CERT_CONTEXT или SECPKG_ATTR_LOCAL_CERT_CONTEXT члену hCertStore присваивается дескриптор хранилища сертификатов, содержащего промежуточные сертификаты, если таковые имеются. Кроме того, приложение отвечает за вызов CertFreeCertificateContext для освобождения памяти, используемой контекстом сертификата.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 8.1 [только классические приложения] |
Минимальная версия сервера |
Windows Server 2012 R2 [только классические приложения] |
Заголовок |
|
Библиотека |
|
DLL |
|
Имя в кодировке Юникод и ANSI |
QueryContextAttributesW (Юникод) и QueryContextAttributesA (ANSI) |
См. также раздел