Condividi tramite


Rappresentazione client (autorizzazione)

rappresentazione è la possibilità di eseguire un thread usando informazioni di sicurezza diverse rispetto al processo proprietario del thread. In genere, un thread in un'applicazione server rappresenta un client. In questo modo il thread del server può agire per conto di tale client per accedere agli oggetti nel server o convalidare l'accesso ai propri oggetti del client.

L'API Microsoft Windows fornisce le funzioni seguenti per avviare una rappresentazione:

  • Un'applicazione server DDE può chiamare la funzioneDdeImpersonateClientper rappresentare un client.
  • Un server named pipe può chiamare la funzioneImpersonateNamedPipeClient.
  • È possibile chiamare la funzione diimpersonateLoggedOnUserper rappresentare il contesto di sicurezza di un utente connesso token di accesso.
  • La funzione ImpersonateSelf consente a un thread di generare una copia del proprio token di accesso. Ciò è utile quando un'applicazione deve modificare il contesto di sicurezza di un singolo thread. Ad esempio, a volte solo un thread di un processo deve abilitare un privilegio .
  • È possibile chiamare la funzionesetThreadTokenper fare in modo che il thread di destinazione venga eseguito nel contesto di sicurezza di un token di rappresentazione specificato.
  • Un'applicazione server RPC (Remote Procedure Call) Microsoft può chiamare la funzioneRpcImpersonateClientper rappresentare un client.
  • Un pacchetto di sicurezza o un server applicazioni può chiamare la funzioneImpersonateSecurityContext per rappresentare un client.

Per la maggior parte di queste rappresentazioni, il thread di rappresentazione può ripristinare il proprio contesto di sicurezza chiamando la funzione RevertToSelf. L'eccezione è la rappresentazione RPC, in cui l'applicazione server RPC chiama RpcRevertToSelf o RpcRevertToSelfEx ripristinare il proprio contesto di sicurezza.

Nota: se si rappresenta un utente da un servizio Win32 e si chiamano API che si basano sulle variabili di ambiente utente, potrebbe essere necessario chiamare RegDisablePredefinedCache prima di eseguire la rappresentazione.