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 al contesto di sicurezza da 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 del materiale chiave segue lo standard RFC 5705.
Esecuzione di query su questo attributo prima che il segreto master 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 la credenziale client è nome utente e password, il buffer è una struttura KERB_INTERACTIVE_LOGON confezionata.
Se la credenziale client è il nome utente e il PIN della smart card, il buffer è una struttura KERB_CERTIFICATE_LOGON confezionata.
Se la credenziale client è una credenziale di identità online, il buffer è una struttura di marshalling SEC_WINNT_AUTH_IDENTITY_EX2 .
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 contenente 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à di certificazione 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 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 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 contenente 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)
Sostituita 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 usare 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 condivisi 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 che contiene 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 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 della sessione.
SECPKG_ATTR_SIZES
0
Il parametro pBuffer contiene un puntatore a una struttura SecPkgContext_Sizes .
Esegue una 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 una query sulle dimensioni delle varie parti di un flusso usato 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 applicativo 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 predefinito di DTLS MTU 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 viene SEC_E_OK.

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

Commenti

La struttura a cui punta il parametro pBuffer varia a seconda dell'attributo su cui viene eseguita la query. Il chiamante deve allocare la struttura pBuffer stessa, ma il provider di servizi condivisi alloca qualsiasi memoria necessaria per contenere membri di dimensioni variabili della struttura pBuffer . Dopo aver terminato di usare la memoria allocata dal provider di servizi condivisi, liberarla chiamando la funzione FreeContextBuffer .

Dopo aver letto il valore SECPKG_ATTR_REMOTE_CERT_CONTEXT o SECPKG_ATTR_LOCAL_CERT_CONTEXT, il membro hCertStore viene impostato su un handle su un archivio certificati che contiene i certificati intermedi, se presenti. 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