Partager via


Fonction ImpersonateNamedPipeClient (namedpipeapi.h)

La fonction ImpersonateNamedPipeClient emprunte l’identité d’une application cliente de canal nommé.

Syntaxe

BOOL ImpersonateNamedPipeClient(
  [in] HANDLE hNamedPipe
);

Paramètres

[in] hNamedPipe

Handle vers un canal nommé.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

La fonction ImpersonateNamedPipeClient permet à l’extrémité serveur d’un canal nommé d’emprunter l’identité de l’extrémité du client. Lorsque cette fonction est appelée, le système de fichiers de canal nommé modifie le thread du processus appelant pour commencer à emprunter l’identité du contexte de sécurité du dernier message lu à partir du canal. Seule l’extrémité serveur du canal peut appeler cette fonction.

Le serveur peut appeler la fonction RevertToSelf une fois l’emprunt d’identité terminé.

Important Si la fonction ImpersonateNamedPipeClient échoue, le client n’est pas emprunt d’identité et toutes les demandes clientes suivantes sont effectuées dans le contexte de sécurité du processus qui a appelé la fonction. Si le processus appelant s’exécute en tant que compte privilégié, il peut effectuer des actions que le client n’est pas autorisé à effectuer. Pour éviter les risques de sécurité, le processus appelant doit toujours case activée la valeur de retour. Si la valeur de retour indique que l’appel de fonction a échoué, aucune demande cliente ne doit être exécutée.
 
Toutes les fonctions d’emprunt d’identité, y compris ImpersonateNamedPipeClient , autorisent l’emprunt d’identité demandé si l’une des opérations suivantes est vraie :
  • Le niveau d’emprunt d’identité demandé du jeton est inférieur à SecurityImpersonation, tel que SecurityIdentification ou SecurityAnonymous.
  • L’appelant dispose du privilège SeImpersonatePrivilege .
  • Un processus (ou un autre processus dans la session d’ouverture de session de l’appelant) a créé le jeton à l’aide d’informations d’identification explicites via la fonction LogonUser ou LsaLogonUser .
  • L’identité authentifiée est identique à celle de l’appelant.
Windows XP avec SP1 et versions antérieures : Le privilège SeImpersonatePrivilege n’est pas pris en charge.

Exemples

Pour obtenir un exemple qui utilise cette fonction, consultez Vérification de l’accès client avec des listes de contrôle d’accès.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête namedpipeapi.h
Bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

Fonctions d’autorisation

Vue d’ensemble des Access Control client/serveur

DdeImpersonateClient

DuplicateToken

RevertToSelf