Udostępnij przez


QueryContextAttributes (Schannel) — funkcja

Funkcja QueryContextAttributes (Schannel) umożliwia aplikacji transportowej wykonywanie zapytań dotyczących pakietu zabezpieczeń Schannel dla niektórych atrybutówkontekstu zabezpieczeń.

Składnia

SECURITY_STATUS SEC_ENTRY QueryContextAttributes(
  _In_  PCtxtHandle phContext,
  _In_  ULONG       ulAttribute,
  _Out_ PVOID       pBuffer
);

Parametry

phContext [in]

Dojście do kontekstu zabezpieczeń do odpytowania.

ulAttribute [in]

Określa atrybut kontekstu, który ma zostać zwrócony. Ten parametr może być jedną z następujących wartości.

Wartość Znaczenie
SECPKG_ATTR_ACCESS_TOKEN
13
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_AccessToken .
Zwraca dojście do tokenu dostępu.
SECPKG_ATTR_APP_DATA
0x5e
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_SessionAppData .
Zwraca lub określa dane aplikacji dla sesji.
Ten atrybut jest obsługiwany tylko przez pakiet zabezpieczeń Schannel.
SECPKG_ATTR_AUTHORITY
6
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_Authority .
Wysyła zapytanie do nazwy urzędu uwierzytelniającego.
SECPKG_ATTR_CIPHER_INFO
0x64
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_CipherInfo .
Zwraca nową strukturę informacji szyfrowania CNG.
SECPKG_ATTR_CONNECTION_INFO
0x5a
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_ConnectionInfo .
Zwraca szczegółowe informacje o nawiązaniu połączenia.
SECPKG_ATTR_KEYING_MATERIAL
0x6b
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_KeyingMaterial . Kluczowa funkcja eksportu materiałów jest zgodna ze standardem RFC 5705.
Wykonywanie zapytań względem tego atrybutu przed wygenerowaniem głównego wpisu tajnego lub przed ustawieniem atrybutu SECPKG_ATTR_KEYING_MATERIAL_INFO z powodu błędu.
Ten atrybut jest obsługiwany tylko przez pakiet zabezpieczeń Schannel w systemach Windows 10 i Windows Server 2016 lub nowszych wersjach.
SECPKG_ATTR_CREDS_2
0x80000086
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_ClientCreds , która określa poświadczenia klienta.
Jeśli poświadczenie klienta to nazwa użytkownika i hasło, bufor jest spakowanym KERB_INTERACTIVE_LOGON strukturą.
Jeśli poświadczenie klienta to nazwa użytkownika i numer PIN karty inteligentnej, bufor jest zapakowaną strukturą KERB_CERTIFICATE_LOGON .
Jeśli poświadczenie klienta jest poświadczenie tożsamości online, bufor jest strukturą SEC_WINNT_AUTH_IDENTITY_EX2 marshaled.
Ten atrybut jest obsługiwany tylko na serwerze CredSSP.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 i Windows XP: Ta wartość nie jest obsługiwana.
SECPKG_ATTR_DCE_INFO
3
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_DceInfo .
Zapytania dotyczące danych autoryzacji używanych przez usługi DCE.
SECPKG_ATTR_EAP_KEY_BLOCK
0x5b
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_EapKeyBlock .
Zapytania dotyczące kluczowych danych używanych przez protokół TLS protokołu EAP.
Ten atrybut jest obsługiwany tylko przez pakiet zabezpieczeń Schannel.
SECPKG_ATTR_ENDPOINT_BINDINGS
26
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_Bindings , która zawiera powiązania kanału dla protokołu TLS (RFC 5929).
Windows Server 2008, Windows Vista, Windows Server 2003 i Windows XP: Ta wartość nie jest obsługiwana.
SECPKG_ATTR_FLAGS
14
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_Flags .
Zwraca informacje o wynegocjowanych flagach kontekstu.
SECPKG_ATTR_ISSUER_LIST_EX
0x59
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_IssuerListInfoEx .
Zwraca listę wystawców certyfikatów akceptowanych przez serwer.
Ten atrybut jest obsługiwany tylko przez pakiet zabezpieczeń Schannel.
SECPKG_ATTR_KEY_INFO
5
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_KeyInfo .
Wysyła informacje o kluczach używanych w kontekście zabezpieczeń.
SECPKG_ATTR_LIFESPAN
2
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_Lifespan .
Wykonuje zapytania dotyczące okresu życia kontekstu.
SECPKG_ATTR_LOCAL_CERT_CONTEXT
0x54
Parametr pBuffer zawiera wskaźnik do struktury PCCERT_CONTEXT.
Znajduje kontekst certyfikatu, który zawiera certyfikat lokalny.
Ten atrybut jest obsługiwany tylko przez pakiet zabezpieczeń Schannel.
SECPKG_ATTR_LOCAL_CRED
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_LocalCredentialInfo . (przestarzałe)
Zastąpione przez SECPKG_ATTR_LOCAL_CERT_CONTEXT.
SECPKG_ATTR_NAMES
1
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_Names .
Wysyła zapytanie do nazwy skojarzonej z kontekstem.
SECPKG_ATTR_NATIVE_NAMES
13
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_NativeNames .
Zwraca nazwę główną (CNAME) z biletu wychodzącego.
SECPKG_ATTR_NEGOTIATION_INFO
12
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_NegotiationInfo .
Zwraca informacje o pakiecie zabezpieczeń , który ma być używany z procesem negocjacji i bieżącym stanem negocjacji w celu użycia tego pakietu.
SECPKG_ATTR_PACKAGE_INFO
10
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_PackageInfo .
Zwraca informacje dotyczące dostawcy usług udostępnionych w użyciu.
SECPKG_ATTR_PASSWORD_EXPIRY
8
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_PasswordExpiry .
Zwraca informacje o wygaśnięciu hasła.
SECPKG_ATTR_REMOTE_CERT_CONTEXT
0x53
Parametr pBuffer zawiera wskaźnik do struktury PCCERT_CONTEXT.
Znajduje kontekst certyfikatu, który zawiera certyfikat końcowy dostarczony przez serwer.
Ten atrybut jest obsługiwany tylko przez pakiet zabezpieczeń Schannel.
SECPKG_ATTR_ROOT_STORE
0x55
Parametr pBuffer zawiera wskaźnik do HCERTCONTEXT. Znajduje kontekst certyfikatu zawierający certyfikat dostarczony przez magazyn główny.
SECPKG_ATTR_SESSION_INFO
0x5d
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_SessionInfo .
Zwraca informacje o sesji.
Windows Server 2008, Windows Vista, Windows Server 2003 i Windows XP: Ta wartość nie jest obsługiwana.
SECPKG_ATTR_SESSION_KEY
9
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_SessionKey .
Zwraca informacje o kluczach sesjis.
SECPKG_ATTR_SIZES
0
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_Sizes .
Wykonuje zapytania dotyczące rozmiarów struktur używanych w funkcjach poszczególnych komunikatów.
SECPKG_ATTR_STREAM_SIZES
4
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_StreamSizes .
Wykonuje zapytanie o rozmiary różnych części strumienia używanego w funkcjach poszczególnych komunikatów.
SECPKG_ATTR_SUPPORTED_SIGNATURES
0x66
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_SupportedSignatures .
Ta wartość zwraca informacje o typach podpisów obsługiwanych dla połączenia.
Windows Server 2008, Windows Vista, Windows Server 2003 i Windows XP: Ta wartość nie jest obsługiwana.
SECPKG_ATTR_TARGET_INFORMATION
17
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_TargetInformation .
Zwraca informacje o nazwie serwera zdalnego.
SECPKG_ATTR_UNIQUE_BINDINGS
25
Parametr pBuffer zawiera wskaźnik do struktury SecPkgContext_Bindings zawierającej informacje o powiązaniu kanału.
Windows Server 2008, Windows Vista, Windows Server 2003 i Windows XP: Ta wartość nie jest obsługiwana.
SECPKG_ATTR_APPLICATION_PROTOCOL
35
Parametr pBuffer zawiera wynegocjowany protokół aplikacji.
SECPKG_ATTR_DTLS_MTU
34
Ustawia i pobiera wartość jednostki MTU (maksymalna jednostka transmisji) do użycia z usługą DTLS. Jeśli zabezpieczenia DTLS nie są włączone w kontekście zabezpieczeń, ten atrybut nie jest obsługiwany.
Prawidłowe wartości to od 200 bajtów do 64 kilobajtów. Domyślna wartość jednostki MTU usługi DTLS w Schannel to 1096 bajtów.

 

pBuffer [out]

Wskaźnik do struktury, która odbiera atrybuty. Typ struktury wskazywany na zależy od wartości określonej w parametrze ulAttribute .

Wartość zwracana

Jeśli funkcja powiedzie się, zwracana wartość jest SEC_E_OK.

Jeśli funkcja zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero.

Uwagi

Struktura wskazywana przez parametr pBuffer różni się w zależności od badanego atrybutu. Obiekt wywołujący musi przydzielić samą strukturę pBuffer , ale dostawca usług udostępnionych przydziela dowolną pamięć wymaganą do przechowywania składowych o zmiennym rozmiarze struktury pBuffer . Po zakończeniu korzystania z pamięci przydzielonej przez dostawcę usług udostępnionych zwolnij ją, wywołując funkcję FreeContextBuffer .

Po odczytaniu wartości SECPKG_ATTR_REMOTE_CERT_CONTEXT lub SECPKG_ATTR_LOCAL_CERT_CONTEXT element członkowski hCertStore jest ustawiony na dojście do magazynu certyfikatów zawierającego certyfikaty pośrednie, jeśli istnieje. Ponadto aplikacja jest odpowiedzialna za wywołanie elementu CertFreeCertificateContext w celu zwolnienia pamięci używanej przez kontekst certyfikatu.

Wymagania

Wymaganie Wartość
Minimalny obsługiwany klient
Windows 8.1 [tylko aplikacje klasyczne]
Minimalny obsługiwany serwer
Windows Server 2012 R2 [tylko aplikacje klasyczne]
Nagłówek
Sspi.h (include Security.h)
Biblioteka
Secur32.lib
DLL
Secur32.dll
Nazwy Unicode i ANSI
QueryContextAttributesW (Unicode) i QueryContextAttributesA (ANSI)

Zobacz też

funkcji SSPI

CERT_CONTEXT

FreeContextBuffer

SecPkgContext_Authority

SecPkgContext_ConnectionInfo

SecPkgContext_DceInfo

SecPkgContext_IssuerListInfoEx

SecPkgContext_KeyInfo

SecPkgContext_Lifespan

SecPkgContext_Names

SecPkgContext_Sizes

SecPkgContext_StreamSizes