Funzione SeImpersonateClientEx (ntifs.h)

La routine SeImpersonateClientEx determina la rappresentazione di un utente da parte di un thread.

Sintassi

NTSTATUS SeImpersonateClientEx(
  [in]           PSECURITY_CLIENT_CONTEXT ClientContext,
  [in, optional] PETHREAD                 ServerThread
);

Parametri

[in] ClientContext

Puntatore al contesto client di sicurezza dell'utente.

[in, optional] ServerThread

Puntatore al thread che rappresenta l'utente. Se non specificato, viene utilizzato il thread chiamante.

Valore restituito

SeImpersonateClientEx restituisce un valore NTSTATUS appropriato, ad esempio:

Codice restituito Descrizione
STATUS_SUCCESS
Tentativo di rappresentazione riuscito.
STATUS_ACCESS_DENIED
Il thread specificato nel parametro ServerThread non dispone di diritti di accesso sufficienti per rappresentare l'utente il cui contesto client di sicurezza è specificato nel parametro ClientContext .
STATUS_NO_MEMORY
SeImpersonateClientEx ha rilevato un errore di allocazione del pool durante l'allocazione della memoria per la struttura delle informazioni di rappresentazione.

Commenti

SeImpersonateClientEx viene usato per rappresentare un thread. Si presuppone che il contesto di sicurezza client in ClientContext sia aggiornato.

È estremamente non sicuro aumentare lo stato dei privilegi di un thread utente non attendibile (ad esempio, prendere il thread di un utente e rappresentare LocalSystem). Se un thread utente non attendibile ha avuto il privilegio generato, l'utente potrebbe acquisire il token del thread dopo che è stato elevato e annullare la sicurezza dell'intero sistema.

Nei casi in cui è necessario uno stato con privilegi più elevati, l'attività deve essere inviata a una coda di lavoro in cui l'attività può essere gestita in modo sicuro dal thread di lavoro di sistema. In questo modo non è necessaria alcuna rappresentazione.

Per terminare la rappresentazione dell'utente, chiamare la routine SeStopImpersonatingClient .

La routine PsImpersonateClient può essere usata per fare in modo che un thread del server rappresenta un client.

Per altre informazioni sulla sicurezza e sul controllo di accesso, vedere Modello di sicurezza di Windows per sviluppatori di driver e la documentazione su questi argomenti in Windows SDK.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

Vedi anche

PsImpersonateClient

SeCreateClientSecurity

SeCreateClientSecurityFromSubjectContext

SeStopImpersonatingClient