Rappresentazione di un client di pipe denominato
La rappresentazione è la possibilità di eseguire un thread in un contesto di sicurezza diverso da quello del processo proprietario del thread. La rappresentazione consente al thread del server di eseguire azioni per conto del client, ma entro i limiti del contesto di sicurezza del client. Il client ha in genere un livello inferiore di diritti di accesso. Per altre informazioni, vedere Rappresentazione.
Un thread del server pipe denominato può chiamare la funzione ImpersonateNamedPipeClient per presupporre il token di accesso dell'utente connesso alla fine del client della pipe. Ad esempio, un server pipe denominato può fornire l'accesso a un database o a un file system a cui il server di pipe ha accesso con privilegi. Quando un client di pipe invia una richiesta al server, il server rappresenta il client e tenta di accedere al database protetto. Il sistema concede o nega l'accesso del server, in base al livello di sicurezza del client. Al termine del server, usa la funzione RevertToSelf per ripristinare il token di sicurezza originale.
Il livello di rappresentazione determina le operazioni che il server può eseguire durante la rappresentazione del client. Per impostazione predefinita, un server rappresenta il livello di rappresentazione di SecurityImpersonation. Tuttavia, quando il client chiama la funzione CreateFile per aprire un handle alla fine del client della pipe, il client può usare il flag SECURITY_SQOS_PRESENT per controllare il livello di rappresentazione del server.