Funzione di callback SpInitLsaModeContextFn (ntsecpkg.h)

La funzione SpInitLsaModeContext è la funzione dispatch client usata per stabilire un contesto di sicurezza tra un server e un client.

La funzione SpInitLsaModeContext viene chiamata quando il client chiama la funzione InitializeSecurityContext (Generale)dell'interfaccia del provider di supporto di sicurezza.

Sintassi

SpInitLsaModeContextFn Spinitlsamodecontextfn;

NTSTATUS Spinitlsamodecontextfn(
  [in]  LSA_SEC_HANDLE CredentialHandle,
  [in]  LSA_SEC_HANDLE ContextHandle,
  [in]  PUNICODE_STRING TargetName,
  [in]  ULONG ContextRequirements,
  [in]  ULONG TargetDataRep,
  [in]  PSecBufferDesc InputBuffers,
  [out] PLSA_SEC_HANDLE NewContextHandle,
  [out] PSecBufferDesc OutputBuffers,
  [out] PULONG ContextAttributes,
  [out] PTimeStamp ExpirationTime,
  [out] PBOOLEAN MappedContext,
  [out] PSecBuffer ContextData
)
{...}

Parametri

[in] CredentialHandle

Facoltativo. Gestire le credenziali da usare per il contesto. CredentialHandle può essere NULL se il parametro ContextHandle non è NULL.

[in] ContextHandle

facoltativo. Gestire il contesto da usare come base per questo contesto. ContextHandle può essere NULL se il parametro CredentialHandle non è NULL.

[in] TargetName

facoltativo. Puntatore a un UNICODE_STRING contenente il nome della destinazione del contesto. Il contenuto di TargetName è specifico del pacchetto e non viene interpretato dall'LSA.

[in] ContextRequirements

Flag che indicano gli attributi di contesto richiesti dal client. Gli attributi di contesto effettivi vengono restituiti nel parametro ContextAttributes .

Nella tabella seguente sono elencati i valori validi.

Valore Significato
ISC_REQ_DELEGATE
Il server può rappresentare il client.
ISC_REQ_MUTUAL_AUTH
Sia il client che il server devono dimostrare la propria identità.
ISC_REQ_REPLAY_DETECT
Il contesto di sicurezza supporterà il rilevamento dei pacchetti riprodotti.
ISC_REQ_SEQUENCE_DETECT
Il contesto di sicurezza supporterà il rilevamento dei messaggi non ordinati.
ISC_REQ_USE_SESSION_KEY
È necessario negoziare una nuova chiave di sessione .
ISC_REQ_PROMPT_FOR_CREDS
Se il client è un utente interattivo, il pacchetto deve, se possibile, richiedere all'utente le credenziali appropriate.
ISC_REQ_USE_SUPPLIED_CREDS
Il buffer di input contiene informazioni sulle credenziali specifiche del pacchetto che devono essere usate per autenticare la connessione.
ISC_REQ_ALLOCATE_MEMORY
Il pacchetto deve allocare memoria. Il chiamante deve infine chiamare la funzione FreeContextBuffer per liberare memoria allocata dal pacchetto.
ISC_REQ_USE_DCE_STYLE
Il chiamante prevede una transazione di autenticazione reciproca a tre gambe.
ISC_REQ_DATAGRAM
È consigliabile usare un canale di comunicazione di tipo datagram. Per altre informazioni, vedere Contesti di Datagram.
ISC_REQ_CONNECTION
È necessario usare un canale di comunicazione di tipo connessione. Per altre informazioni, vedere Contesti orientati alla connessione.
ISC_REQ_EXTENDED_ERROR
Se il contesto ha esito negativo, generare un messaggio di risposta di errore da inviare al client.
ISC_REQ_STREAM
È necessario usare un canale di comunicazione di tipo flusso. Per altre informazioni, vedere contesti di Stream.
ISC_REQ_INTEGRITY
L'integrità del buffer viene verificata; Tuttavia, i messaggi riprodotti e non in sequenza non verranno rilevati.

[in] TargetDataRep

Flag che indica la rappresentazione dei dati, ad esempio l'ordinamento dei byte, nella destinazione. Contiene SECURITY_NATIVE_DREP o SECURITY_NETWORK_DREP.

[in] InputBuffers

Puntatore a una struttura SecBufferDesc contenente il messaggio di risposta precedente dal server. La prima volta che questa funzione viene chiamata parametro InputBuffers è NULL.

[out] NewContextHandle

Puntatore che riceve un handle per il nuovo contesto di sicurezza. Al termine dell'uso del contesto di sicurezza, rilasciare l'handle chiamando la funzione SpDeleteContext .

[out] OutputBuffers

Puntatore a una struttura SecBufferDesc contenente il token di sicurezza da passare al server.

[out] ContextAttributes

Puntatore ai flag che specificano gli attributi del nuovo contesto. Il client richiede un set di attributi usando il parametro ContextRequirements . Se i flag ContextRequirements non corrispondono ai flag ContextAttributes , il client deve decidere se continuare o terminare. Per un elenco completo dei flag validi, vedere Requisiti di contesto.

[out] ExpirationTime

Puntatore a un timestamp che riceve l'ora di scadenza per il nuovo contesto.

[out] MappedContext

Puntatore a un valore booleano. Impostare MappedContext su TRUE se il pacchetto di sicurezza implementa le funzioni SSP/AP in modalità utente.

[out] ContextData

Puntatore a una struttura SecBuffer che riceve i dati da copiare durante la creazione di un contesto di sicurezza in modalità utente. Allocare memoria per ContextData usando la funzione AllocateLsaHeap . LSA libera la memoria.

Valore restituito

Se la funzione ha esito positivo e non è necessaria più elaborazione, restituire STATUS_SUCCESS. Se l'elaborazione non è completa, la funzione deve restituire SEC_I_CONTINUE_NEEDED. Quando viene restituito questo valore, il chiamante deve chiamare nuovamente la funzione InitializeSecurityContext (General).

Se la funzione non riesce a creare il contesto di sicurezza per qualsiasi altro motivo, deve restituire un codice NTSTATUS che indica il motivo per cui non è riuscito.

Commenti

La funzione SpAcceptLsaModeContext è la funzione lato server per la creazione di un contesto.

SSP/APs deve implementare la funzione SpInitLsaModeContext ; Tuttavia, il nome effettivo assegnato all'implementazione spetta allo sviluppatore.

Un puntatore alla funzione SpInitLsaModeContext è disponibile nella struttura SECPKG_FUNCTION_TABLEricevuta dalla funzione SpLsaModeInitialize .

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ntsecpkg.h

Vedi anche

AllocateLsaHeap

InitializeSecurityContext (Generale)

SECPKG_FUNCTION_TABLE

SpAcceptLsaModeContext

SpLsaModeInitialize

Timestamp