QueryContextAttributes-Funktion (Schannel)

Die Funktion QueryContextAttributes (Schannel) ermöglicht es einer Transportanwendung, das Schannel-Sicherheitspaket nach bestimmten Attributen eines Sicherheitskontexts abzufragen.

Syntax

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

Parameter

phContext [in]

Ein Handle für den abzufragenden Sicherheitskontext .

ulAttribute [in]

Gibt das Attribut des zurückzugebenden Kontexts an. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
SECPKG_ATTR_ACCESS_TOKEN
13
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_AccessToken-Struktur .
Gibt ein Handle für das Zugriffstoken zurück.
SECPKG_ATTR_APP_DATA
0x5e
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_SessionAppData-Struktur .
Gibt Anwendungsdaten für die Sitzung zurück oder gibt diese an.
Dieses Attribut wird nur vom Schannel-Sicherheitspaket unterstützt.
SECPKG_ATTR_AUTHORITY
6
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_Authority-Struktur .
Fragt den Namen der authentifizierenden Autorität ab.
SECPKG_ATTR_CIPHER_INFO
0x64
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_CipherInfo-Struktur .
Gibt eine neue CNG-Verschlüsselungsinformationsstruktur zurück.
SECPKG_ATTR_CONNECTION_INFO
0x5a
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_ConnectionInfo-Struktur .
Gibt ausführliche Informationen zur hergestellten Verbindung zurück.
SECPKG_ATTR_KEYING_MATERIAL
0x6b
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_KeyingMaterial-Struktur . Das Feature zum Exportieren von Schlüsselmaterial folgt dem RFC 5705-Standard.
Das Abfragen dieses Attributs, bevor das master Geheimnis generiert wurde oder bevor das attribut SECPKG_ATTR_KEYING_MATERIAL_INFO festgelegt wurde, führt zu einem Fehler.
Dieses Attribut wird nur vom Schannel-Sicherheitspaket in Windows 10 und Windows Server 2016 oder höheren Versionen unterstützt.
SECPKG_ATTR_CREDS_2
0x80000086
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_ClientCreds-Struktur , die Clientanmeldeinformationen angibt.
Wenn die Clientanmeldeinformationen Benutzername und Kennwort sind, ist der Puffer eine gepackte KERB_INTERACTIVE_LOGON Struktur.
Wenn die Clientanmeldeinformationen benutzername und smart Karte PIN sind, ist der Puffer eine gepackte KERB_CERTIFICATE_LOGON Struktur.
Wenn es sich bei den Clientanmeldeinformationen um Online-Identitätsanmeldeinformationen handelt, handelt es sich bei dem Puffer um eine gemarshallte SEC_WINNT_AUTH_IDENTITY_EX2-Struktur .
Dieses Attribut wird nur auf dem CredSSP-Server unterstützt.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt.
SECPKG_ATTR_DCE_INFO
3
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_DceInfo-Struktur .
Abfragen von Autorisierungsdaten, die von DCE-Diensten verwendet werden.
SECPKG_ATTR_EAP_KEY_BLOCK
0x5b
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_EapKeyBlock-Struktur .
Abfragen von Schlüsseldaten, die vom EAP-TLS-Protokoll verwendet werden.
Dieses Attribut wird nur vom Schannel-Sicherheitspaket unterstützt.
SECPKG_ATTR_ENDPOINT_BINDINGS
26
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_Bindings Struktur, die die Kanalbindungen für TLS (RFC 5929) enthält.
Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt.
SECPKG_ATTR_FLAGS
14
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_Flags-Struktur .
Gibt Informationen zu den ausgehandelten Kontextflags zurück.
SECPKG_ATTR_ISSUER_LIST_EX
0x59
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_IssuerListInfoEx-Struktur .
Gibt eine Liste der Zertifikataussteller zurück, die vom Server akzeptiert werden.
Dieses Attribut wird nur vom Schannel-Sicherheitspaket unterstützt.
SECPKG_ATTR_KEY_INFO
5
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_KeyInfo-Struktur .
Fragt Informationen zu den Schlüsseln ab, die in einem Sicherheitskontext verwendet werden.
SECPKG_ATTR_LIFESPAN
2
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_Lifespan-Struktur .
Fragt die Lebensdauer des Kontexts ab.
SECPKG_ATTR_LOCAL_CERT_CONTEXT
0x54
Der pBuffer-Parameter enthält einen Zeiger auf eine PCCERT_CONTEXT-Struktur.
Sucht nach einem Zertifikatkontext, der ein lokales Endzertifikat enthält.
Dieses Attribut wird nur vom Schannel-Sicherheitspaket unterstützt.
SECPKG_ATTR_LOCAL_CRED
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_LocalCredentialInfo-Struktur . (Veraltet)
Ersetzt durch SECPKG_ATTR_LOCAL_CERT_CONTEXT.
SECPKG_ATTR_NAMES
1
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_Names-Struktur .
Fragt den Namen ab, der dem Kontext zugeordnet ist.
SECPKG_ATTR_NATIVE_NAMES
13
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_NativeNames-Struktur .
Gibt den Prinzipalnamen (CNAME) aus dem ausgehenden Ticket zurück.
SECPKG_ATTR_NEGOTIATION_INFO
12
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_NegotiationInfo-Struktur .
Gibt Informationen zum Sicherheitspaket zurück, das beim Aushandlungsprozess verwendet werden soll, und den aktuellen Zustand der Aushandlung für die Verwendung dieses Pakets.
SECPKG_ATTR_PACKAGE_INFO
10
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_PackageInfo-Struktur .
Gibt Informationen zum verwendeten SSP zurück.
SECPKG_ATTR_PASSWORD_EXPIRY
8
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_PasswordExpiry-Struktur .
Gibt Informationen zum Kennwortablauf zurück.
SECPKG_ATTR_REMOTE_CERT_CONTEXT
0x53
Der pBuffer-Parameter enthält einen Zeiger auf eine PCCERT_CONTEXT-Struktur.
Sucht nach einem Zertifikatkontext, der das vom Server bereitgestellte Endzertifikat enthält.
Dieses Attribut wird nur vom Schannel-Sicherheitspaket unterstützt.
SECPKG_ATTR_ROOT_STORE
0x55
Der pBuffer-Parameter enthält einen Zeiger auf HCERTCONTEXT. Sucht nach einem Zertifikatkontext, der ein vom Stammspeicher bereitgestelltes Zertifikat enthält.
SECPKG_ATTR_SESSION_INFO
0x5d
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_SessionInfo-Struktur .
Gibt Informationen zur Sitzung zurück.
Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt.
SECPKG_ATTR_SESSION_KEY
9
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_SessionKey-Struktur .
Gibt Informationen zu den Sitzungsschlüsselnzurück.
SECPKG_ATTR_SIZES
0
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_Sizes-Struktur .
Fragt die Größe der Strukturen ab, die in den Nachrichtenfunktionen verwendet werden.
SECPKG_ATTR_STREAM_SIZES
4
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_StreamSizes-Struktur .
Fragt die Größen der verschiedenen Teile eines Datenstroms ab, die in den Nachrichtenfunktionen verwendet werden.
SECPKG_ATTR_SUPPORTED_SIGNATURES
0x66
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_SupportedSignatures-Struktur .
Dieser Wert gibt Informationen zu den Signaturtypen zurück, die für die Verbindung unterstützt werden.
Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt.
SECPKG_ATTR_TARGET_INFORMATION
17
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_TargetInformation-Struktur .
Gibt Informationen zum Namen des Remoteservers zurück.
SECPKG_ATTR_UNIQUE_BINDINGS
25
Der pBuffer-Parameter enthält einen Zeiger auf eine SecPkgContext_Bindings Struktur, die Informationen zur Kanalbindung enthält.
Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt.
SECPKG_ATTR_APPLICATION_PROTOCOL
35
Der pBuffer-Parameter enthält ein ausgehandeltes Anwendungsprotokoll.
SECPKG_ATTR_DTLS_MTU
34
Legt den MTU-Wert (maximale Übertragungseinheit) für die Verwendung mit DTLS fest und ruft diesen ab. Wenn DTLS in einem Sicherheitskontext nicht aktiviert ist, wird dieses Attribut nicht unterstützt.
Gültige Werte liegen zwischen 200 Bytes und 64 KB. Der DTLS-MTU-Standardwert in Schannel beträgt 1096 Byte.

 

pBuffer [out]

Ein Zeiger auf eine Struktur, die die Attribute empfängt. Der Typ der Struktur, auf die verwiesen wird, hängt vom wert ab, der im ulAttribute-Parameter angegeben ist.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert SEC_E_OK.

Wenn die Funktion fehlschlägt, ist der Rückgabewert ein Fehlercode ungleich null.

Bemerkungen

Die Struktur, auf die der pBuffer-Parameter verweist, hängt vom abgefragten Attribut ab. Der Aufrufer muss die pBuffer-Struktur selbst zuordnen, aber der SSP weist alle Arbeitsspeicher zu, die für die Aufnahme von Membern mit variabler Größe der pBuffer-Struktur erforderlich sind. Wenn Sie mit der Verwendung des vom SSP zugewiesenen Arbeitsspeichers fertig sind, geben Sie ihn durch Aufrufen der FreeContextBuffer-Funktion frei.

Nachdem der SECPKG_ATTR_REMOTE_CERT_CONTEXT oder SECPKG_ATTR_LOCAL_CERT_CONTEXT Wert gelesen wurde, wird das hCertStore-Element auf ein Handle für einen Zertifikatspeicher festgelegt, der ggf. die Zwischenzertifikate enthält. Außerdem ist die Anwendung für den Aufruf von CertFreeCertificateContext verantwortlich, um den vom Zertifikatkontext verwendeten Arbeitsspeicher freizugeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 8.1 [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2012 R2 [nur Desktop-Apps]
Header
Sspi.h (einschließlich Security.h)
Bibliothek
Secur32.lib
DLL
Secur32.dll
Unicode- und ANSI-Name
QueryContextAttributesW (Unicode) und QueryContextAttributesA (ANSI)

Siehe auch

SSPI-Funktionen

CERT_CONTEXT

FreeContextBuffer

SecPkgContext_Authority

SecPkgContext_ConnectionInfo

SecPkgContext_DceInfo

SecPkgContext_IssuerListInfoEx

SecPkgContext_KeyInfo

SecPkgContext_Lifespan

SecPkgContext_Names

SecPkgContext_Sizes

SecPkgContext_StreamSizes