Funzione SaslAcceptSecurityContext (sspi.h)
La funzione SaslAcceptSecurityContext esegue il wrapping di una chiamata standard alla funzione Security Support Provider Interface AcceptSecurityContext (Generale) e include la creazione di cookie del server SASL.
Sintassi
SECURITY_STATUS SEC_ENTRY SaslAcceptSecurityContext(
[in] PCredHandle phCredential,
[in, optional] PCtxtHandle phContext,
[in] PSecBufferDesc pInput,
[in] unsigned long fContextReq,
[in] unsigned long TargetDataRep,
[out] PCtxtHandle phNewContext,
[in, out] PSecBufferDesc pOutput,
[out] unsigned long *pfContextAttr,
[out, optional] PTimeStamp ptsExpiry
);
Parametri
[in] phCredential
Handle per le credenziali del server. Il server chiama la funzione AcquireCredentialsHandle con il flag INBOUND impostato per recuperare questo handle.
[in, optional] phContext
Puntatore a una struttura CtxtHandle . Nella prima chiamata a AcceptSecurityContext (Generale) questo puntatore è NULL. Nelle chiamate successive , phContext è l'handle del contesto parzialmente formato restituito nel parametro phNewContext dalla prima chiamata.
[in] pInput
Puntatore a una struttura SecBufferDesc generata da una chiamata client alla funzione InitializeSecurityContext (Generale) che contiene il descrittore del buffer di input.
SasL richiede un singolo buffer di tipo SECBUFFER_TOKEN. Il buffer è vuoto per la prima chiamata alla funzione AcceptSecurityContext (Generale) e contiene la risposta di richiesta ricevuta dal client per la seconda chiamata.
[in] fContextReq
Flag bit che specificano gli attributi richiesti dal server per stabilire il contesto. I flag bit possono essere combinati usando operazioni BIT-OR . Nella tabella seguente sono illustrati i possibili valori.
[in] TargetDataRep
Indica la rappresentazione dei dati, ad esempio l'ordinamento di byte, nella destinazione. Questo valore può essere SECURITY_NATIVE_DREP o SECURITY_NETWORK_DREP.
[out] phNewContext
Puntatore a una struttura CtxtHandle . Nella prima chiamata a AcceptSecurityContext (Generale) questo puntatore riceve il nuovo handle di contesto. Nelle chiamate successive , phNewContext può essere uguale all'handle specificato nel parametro phContext .
[in, out] pOutput
Puntatore a una struttura SecBufferDesc contenente il descrittore del buffer di output. Questo buffer viene inviato al client per l'input in chiamate aggiuntive a InitializeSecurityContext (Generale). Un buffer di output può essere generato anche se la funzione restituisce SEC_E_OK. Qualsiasi buffer generato deve essere inviato nuovamente all'applicazione client.
[out] pfContextAttr
Puntatore a una variabile che riceve un set di flag di bit che indicano gli attributi del contesto stabilito. Per una descrizione dei vari attributi, vedere Requisiti di contesto. I flag usati per questo parametro sono preceduti da ASC_RET, ad esempio ASC_RET_DELEGATE.
Non controllare gli attributi correlati alla sicurezza fino a quando la chiamata di funzione finale non restituisce correttamente. I flag di attributo non correlati alla sicurezza, ad esempio il flag ASC_RET_ALLOCATED_MEMORY, possono essere controllati prima della restituzione finale.
[out, optional] ptsExpiry
Puntatore a una struttura TimeStamp che riceve l'ora di scadenza del contesto. È consigliabile che il pacchetto di sicurezza restituisca sempre questo valore in ora locale.
Valore restituito
Se la chiamata viene completata correttamente, questa funzione restituisce SEC_E_OK. La tabella seguente mostra alcuni possibili valori restituiti dagli errori.
Codice restituito | Descrizione |
---|---|
|
L'elaborazione di Authz non è consentita. |
|
Memoria insufficiente disponibile per completare la richiesta. |
|
Nessun buffer token si trova nel parametro pOutput o il messaggio non è riuscito a decrittografare. |
Commenti
La chiamata finale della funzione AcceptSecurityContext (Generale) che restituisce SEC_E_OK viene identificata. Se viene generato un token restituito, l'elaborazione SASL viene sospesa per un round trip al client per consentire l'elaborazione del token finale. Al termine dello scambio, SEC_E_CONTINUE_NEEDED viene restituito all'applicazione con un cookie del server SASL aggiuntivo crittografato con funzioni di messaggio SSPI. Il cookie del server iniziale indica se SONO supportati INTEGRITÀ e PRIVACY. Questo cookie del server iniziale viene elaborato dal client e il client restituisce un cookie client per indicare quali servizi richiede il client. Il cookie client viene quindi decrittografato dal server e i servizi finali vengono determinati per il traffico di messaggi seguente.
Requisiti
Client minimo supportato | Nessuno supportato |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | sspi.h (includere Security.h) |
Libreria | Secur32.lib |
DLL | Secur32.dll |
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per