Função ImpersonateNamedPipeClient (namedpipeapi.h)

A função ImpersonateNamedPipeClient representa um aplicativo cliente de pipe nomeado.

Sintaxe

BOOL ImpersonateNamedPipeClient(
  [in] HANDLE hNamedPipe
);

Parâmetros

[in] hNamedPipe

Um identificador para um pipe nomeado.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

A função ImpersonateNamedPipeClient permite que a extremidade do servidor de um pipe nomeado represente a extremidade do cliente. Quando essa função é chamada, o sistema de arquivos de pipe nomeado altera o thread do processo de chamada para começar a representar o contexto de segurança da última mensagem lida do pipe. Somente a extremidade do servidor do pipe pode chamar essa função.

O servidor pode chamar a função RevertToSelf quando a representação for concluída.

Importante Se a função ImpersonateNamedPipeClient falhar, o cliente não será representado e todas as solicitações de cliente subsequentes serão feitas no contexto de segurança do processo que chamou a função. Se o processo de chamada estiver em execução como uma conta privilegiada, ele poderá executar ações que o cliente não teria permissão para executar. Para evitar riscos de segurança, o processo de chamada deve sempre marcar o valor retornado. Se o valor retornado indicar que a chamada de função falhou, nenhuma solicitação de cliente deverá ser executada.
 
Todas as funções de representação, incluindo ImpersonateNamedPipeClient , permitem a representação solicitada se uma das seguintes opções for verdadeira:
  • O nível de representação solicitado do token é menor que SecurityImpersonation, como SecurityIdentification ou SecurityAnonymous.
  • O chamador tem o privilégio SeImpersonatePrivilege .
  • Um processo (ou outro processo na sessão de logon do chamador) criou o token usando credenciais explícitas por meio da função LogonUser ou LsaLogonUser .
  • A identidade autenticada é a mesma que o chamador.
Windows XP com SP1 e versões anteriores: Não há suporte para o privilégio SeImpersonatePrivilege .

Exemplos

Para obter um exemplo que usa essa função, consulte Verificando o acesso do cliente com ACLs.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho namedpipeapi.h
Biblioteca Advapi32.lib
DLL Advapi32.dll

Confira também

Funções de autorização

Visão geral do Controle de Acesso cliente/servidor

DdeImpersonateClient

DuplicateToken

Reverttoself