Condividi tramite


Funzione QueryContextAttributes (Schannel)

La funzione QueryContextAttributes (Schannel) consente a un'applicazione di trasporto di eseguire query sul pacchetto di sicurezza Schannel per determinati attributi di un contesto di sicurezza.

Sintassi

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

Parametri

phContext [in]

Handle per il contesto di sicurezza su cui eseguire query.

ulAttribute [in]

Specifica l'attributo del contesto da restituire. Questo parametro può avere uno dei valori seguenti.

Valore Significato
SECPKG_ATTR_ACCESS_TOKEN
13
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_AccessToken .
Restituisce un handle al token di accesso.
SECPKG_ATTR_APP_DATA
0x5e
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_SessionAppData .
Restituisce o specifica i dati dell'applicazione per la sessione.
Questo attributo è supportato solo dal pacchetto di sicurezza Schannel.
SECPKG_ATTR_AUTHORITY
6
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_Authority .
Esegue una query sul nome dell'autorità di autenticazione.
SECPKG_ATTR_CIPHER_INFO
0x64
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_CipherInfo .
Restituisce una nuova struttura di informazioni di crittografia CNG.
SECPKG_ATTR_CONNECTION_INFO
0x5a
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_ConnectionInfo .
Restituisce informazioni dettagliate sulla connessione stabilita.
SECPKG_ATTR_KEYING_MATERIAL
0x6b
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_KeyingMaterial . La funzionalità di esportazione dei materiali di keying segue lo standard RFC 5705.
L'esecuzione di query su questo attributo prima che il master secret sia stato generato o prima che l'attributo SECPKG_ATTR_KEYING_MATERIAL_INFO sia stato impostato con il risultato di un errore.
Questo attributo è supportato solo dal pacchetto di sicurezza Schannel in Windows 10 e Windows Server 2016 o versioni successive.
SECPKG_ATTR_CREDS_2
0x80000086
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_ClientCreds che specifica le credenziali client.
Se le credenziali client sono nome utente e password, il buffer è una struttura di KERB_INTERACTIVE_LOGON compressa.
Se la credenziale client è il nome utente e il PIN della smart card, il buffer è una struttura di KERB_CERTIFICATE_LOGON compressa.
Se le credenziali client sono credenziali di identità online, il buffer è una struttura di SEC_WINNT_AUTH_IDENTITY_EX2 di marshalling.
Questo attributo è supportato solo nel server CredSSP.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato.
SECPKG_ATTR_DCE_INFO
3
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_DceInfo .
Query per i dati di autorizzazione usati dai servizi DCE.
SECPKG_ATTR_EAP_KEY_BLOCK
0x5b
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_EapKeyBlock .
Query per i dati chiave usati dal protocollo TLS EAP.
Questo attributo è supportato solo dal pacchetto di sicurezza Schannel.
SECPKG_ATTR_ENDPOINT_BINDINGS
26
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_Bindings che contiene le associazioni di canale per TLS (RFC 5929).
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato.
SECPKG_ATTR_FLAGS
14
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_Flags .
Restituisce informazioni sui flag di contesto negoziati.
SECPKG_ATTR_ISSUER_LIST_EX
0x59
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_IssuerListInfoEx .
Restituisce un elenco di autorità emittenti di certificati accettate dal server.
Questo attributo è supportato solo dal pacchetto di sicurezza Schannel.
SECPKG_ATTR_KEY_INFO
5
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_KeyInfo .
Esegue una query sulle chiavi usate in un contesto di sicurezza.
SECPKG_ATTR_LIFESPAN
2
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_Lifespan .
Esegue una query sull'intervallo di vita del contesto.
SECPKG_ATTR_LOCAL_CERT_CONTEXT
0x54
Il parametro pBuffer contiene un puntatore a una struttura PCCERT_CONTEXT.
Trova un contesto di certificato che contiene un certificato finale locale.
Questo attributo è supportato solo dal pacchetto di sicurezza Schannel.
SECPKG_ATTR_LOCAL_CRED
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_LocalCredentialInfo . (obsoleto)
Sostituito da SECPKG_ATTR_LOCAL_CERT_CONTEXT.
SECPKG_ATTR_NAMES
1
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_Names .
Esegue una query sul nome associato al contesto.
SECPKG_ATTR_NATIVE_NAMES
13
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_NativeNames .
Restituisce il nome dell'entità (CNAME) dal ticket in uscita.
SECPKG_ATTR_NEGOTIATION_INFO
12
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_NegotiationInfo .
Restituisce informazioni sul pacchetto di sicurezza da utilizzare con il processo di negoziazione e lo stato corrente della negoziazione per l'uso di tale pacchetto.
SECPKG_ATTR_PACKAGE_INFO
10
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_PackageInfo .
Restituisce informazioni sul provider di servizi di configurazione in uso.
SECPKG_ATTR_PASSWORD_EXPIRY
8
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_PasswordExpiry .
Restituisce le informazioni sulla scadenza della password.
SECPKG_ATTR_REMOTE_CERT_CONTEXT
0x53
Il parametro pBuffer contiene un puntatore a una struttura PCCERT_CONTEXT.
Trova un contesto di certificato contenente il certificato finale fornito dal server.
Questo attributo è supportato solo dal pacchetto di sicurezza Schannel.
SECPKG_ATTR_ROOT_STORE
0x55
Il parametro pBuffer contiene un puntatore a un oggetto HCERTCONTEXT. Trova un contesto di certificato che contiene un certificato fornito dall'archivio radice.
SECPKG_ATTR_SESSION_INFO
0x5d
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_SessionInfo .
Restituisce informazioni sulla sessione.
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato.
SECPKG_ATTR_SESSION_KEY
9
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_SessionKey .
Restituisce informazioni sulla chiave di sessiones.
SECPKG_ATTR_SIZES
0
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_Sizes .
Esegue query sulle dimensioni delle strutture usate nelle funzioni per messaggio.
SECPKG_ATTR_STREAM_SIZES
4
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_StreamSizes .
Esegue query sulle dimensioni delle varie parti di un flusso utilizzato nelle funzioni per messaggio.
SECPKG_ATTR_SUPPORTED_SIGNATURES
0x66
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_SupportedSignatures .
Questo valore restituisce informazioni sui tipi di firma supportati per la connessione.
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato.
SECPKG_ATTR_TARGET_INFORMATION
17
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_TargetInformation .
Restituisce informazioni sul nome del server remoto.
SECPKG_ATTR_UNIQUE_BINDINGS
25
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_Bindings che contiene informazioni sull'associazione del canale.
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato.
SECPKG_ATTR_APPLICATION_PROTOCOL
35
Il parametro pBuffer contiene un protocollo applicazione negoziato.
SECPKG_ATTR_DTLS_MTU
34
Imposta e recupera il valore MTU (unità di trasmissione massima) da usare con DTLS. Se DTLS non è abilitato in un contesto di sicurezza, questo attributo non è supportato.
I valori validi sono compresi tra 200 byte e 64 kilobyte. Il valore MTU DTLS predefinito in Schannel è 1096 byte.

 

pBuffer [out]

Puntatore a una struttura che riceve gli attributi. Il tipo di struttura a cui punta dipende dal valore specificato nel parametro ulAttribute .

Valore restituito

Se la funzione ha esito positivo, il valore restituito è SEC_E_OK.

Se la funzione ha esito negativo, il valore restituito è un codice di errore diverso da zero.

Commenti

La struttura a cui fa riferimento il parametro pBuffer varia a seconda dell'attributo sottoposto a query. Il chiamante deve allocare la struttura pBuffer stessa, ma il provider di servizi di dominio alloca qualsiasi memoria necessaria per contenere membri di dimensioni variabili della struttura pBuffer . Al termine dell'uso della memoria allocata dal provider di servizi di distribuzione, liberarla chiamando la funzione FreeContextBuffer .

Dopo aver letto il valore SECPKG_ATTR_REMOTE_CERT_CONTEXT o SECPKG_ATTR_LOCAL_CERT_CONTEXT, il membro hCertStore è impostato su un handle su un archivio certificati contenente i certificati intermedi, se presente. Inoltre, l'applicazione ha la responsabilità di chiamare CertFreeCertificateContext per rilasciare la memoria usata dal contesto del certificato.

Requisiti

Requisito Valore
Client minimo supportato
Windows 8.1 [solo app desktop]
Server minimo supportato
Windows Server 2012 R2 [solo app desktop]
Intestazione
Sspi.h (include Security.h)
Libreria
Secur32.lib
DLL
Secur32.dll
Nomi Unicode e ANSI
QueryContextAttributesW (Unicode) e QueryContextAttributesA (ANSI)

Vedi anche

Funzioni SSPI

CERT_CONTEXT

FreeContextBuffer

SecPkgContext_Authority

SecPkgContext_ConnectionInfo

SecPkgContext_DceInfo

SecPkgContext_IssuerListInfoEx

SecPkgContext_KeyInfo

SecPkgContext_Lifespan

SecPkgContext_Names

SecPkgContext_Sizes

SecPkgContext_StreamSizes