Condividi tramite


Funzione ImpersonateNamedPipeClient (namedpipeapi.h)

La funzione ImpersonateNamedPipeClient rappresenta un'applicazione client named-pipe.

Sintassi

BOOL ImpersonateNamedPipeClient(
  [in] HANDLE hNamedPipe
);

Parametri

[in] hNamedPipe

Handle a una named pipe.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

La funzione ImpersonateNamedPipeClient consente all'estremità del server di una named pipe di rappresentare l'estremità del client. Quando questa funzione viene chiamata, il file system named-pipe modifica il thread del processo chiamante per avviare la rappresentazione del contesto di sicurezza dell'ultimo messaggio letto dalla pipe. Solo la fine del server della pipe può chiamare questa funzione.

Il server può chiamare la funzione RevertToSelf al termine della rappresentazione.

Importante Se la funzione ImpersonateNamedPipeClient ha esito negativo, il client non viene rappresentato e tutte le richieste client successive vengono effettuate nel contesto di sicurezza del processo che ha chiamato la funzione. Se il processo chiamante è in esecuzione come account con privilegi, può eseguire azioni che il client non può eseguire. Per evitare rischi per la sicurezza, il processo chiamante deve sempre controllare il valore restituito. Se il valore restituito indica che la chiamata di funzione non è riuscita, non deve essere eseguita alcuna richiesta client.
 
Tutte le funzioni di rappresentazione, incluso ImpersonateNamedPipeClient , consentono la rappresentazione richiesta se una delle condizioni seguenti è vera:
  • Il livello di rappresentazione richiesto del token è minore di SecurityImpersonation, ad esempio SecurityIdentification o SecurityAnonymous.
  • Il chiamante ha il privilegio SeImpersonatePrivilege .
  • Un processo (o un altro processo nella sessione di accesso del chiamante) ha creato il token usando credenziali esplicite tramite la funzione LogonUser o LsaLogonUser .
  • L'identità autenticata corrisponde al chiamante.
Windows XP con SP1 e versioni precedenti: Il privilegio SeImpersonatePrivilege non è supportato.

Esempio

Per un esempio che usa questa funzione, vedere Verifying Client Access with ACL .For an example that uses this function, see Verifying Client Access with ACL.

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 namedpipeapi.h
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

Funzioni di autorizzazione

Panoramica del Controllo di accesso client/server

DdeImpersonateClient

DuplicateToken

Reverttoself