Función ImpersonateNamedPipeClient (namedpipeapi.h)

La función ImpersonateNamedPipeClient suplanta una aplicación cliente de canalización con nombre.

Sintaxis

BOOL ImpersonateNamedPipeClient(
  [in] HANDLE hNamedPipe
);

Parámetros

[in] hNamedPipe

Identificador de una canalización con nombre.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

La función ImpersonateNamedPipeClient permite al final del servidor de una canalización con nombre suplantar el extremo del cliente. Cuando se llama a esta función, el sistema de archivos de canalización con nombre cambia el subproceso del proceso de llamada para iniciar la suplantación del contexto de seguridad del último mensaje leído de la canalización. Solo el extremo del servidor de la canalización puede llamar a esta función.

El servidor puede llamar a la función RevertToSelf cuando se complete la suplantación.

Importante Si se produce un error en la función ImpersonateNamedPipeClient , el cliente no se suplanta y todas las solicitudes de cliente posteriores se realizan en el contexto de seguridad del proceso que llamó a la función. Si el proceso de llamada se ejecuta como una cuenta con privilegios, puede realizar acciones que el cliente no podría realizar. Para evitar riesgos de seguridad, el proceso de llamada siempre debe comprobar el valor devuelto. Si el valor devuelto indica que se produjo un error en la llamada de función, no se debe ejecutar ninguna solicitud de cliente.
 
Todas las funciones de suplantación, incluidas ImpersonateNamedPipeClient , permiten la suplantación solicitada si se cumple una de las siguientes condiciones:
  • El nivel de suplantación solicitado del token es menor que SecurityImpersonation, como SecurityIdentification o SecurityAnonymous.
  • El autor de la llamada tiene el privilegio SeImpersonatePrivilege .
  • Un proceso (u otro proceso en la sesión de inicio de sesión del autor de la llamada) creó el token mediante credenciales explícitas a través de la función LogonUser o LsaLogonUser .
  • La identidad autenticada es la misma que el autor de la llamada.
Windows XP con SP1 y versiones anteriores: No se admite el privilegio SeImpersonatePrivilege .

Ejemplos

Para ver un ejemplo que usa esta función, consulte Comprobación del acceso de cliente con ACL.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado namedpipeapi.h
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

Funciones de autorización

Información general de Access Control de cliente/servidor

DdeImpersonateClient

DuplicateToken

RevertToSelf