Partilhar via


Representação do Cliente (Autorização)

de representação é a capacidade de um thread ser executado usando informações de segurança diferentes do processo que possui o thread. Normalmente, um thread em um aplicativo de servidor representa um cliente. Isso permite que o thread do servidor aja em nome desse cliente para acessar objetos no servidor ou validar o acesso aos próprios objetos do cliente.

A API do Microsoft Windows fornece as seguintes funções para iniciar uma representação:

  • Um aplicativo de servidor DDE pode chamar a função DdeImpersonateClient para representar um cliente.
  • Um servidor de pipe nomeado pode chamar a funçãoImpersonateNamedPipeClient.
  • Você pode chamar o função ImpersonateLoggedOnUser para representar o contexto de segurança do token de acesso de um usuário conectado.
  • A função ImpersonateSelf permite que um thread gere uma cópia de seu próprio token de acesso. Isso é útil quando um aplicativo precisa alterar o contexto de segurança de um único thread. Por exemplo, às vezes, apenas um thread de um processo precisa habilitar um privilégio .
  • Você pode chamar a função deSetThreadTokenpara fazer com que o thread de destino seja executado no contexto de segurança de um token de representação de especificado.
  • Um aplicativo de servidor Microsoft Remote Procedure Call (RPC) pode chamar o função RpcImpersonateClient para representar um cliente.
  • Umde pacote de segurançaou servidor de aplicativos pode chamar a funçãoImpersonateSecurityContext para representar um cliente.

Para a maioria dessas representações, o thread de representação pode reverter para seu próprio contexto de segurança chamando a funçãoRevertToSelf. A exceção é a representação RPC, na qual o aplicativo de servidor RPC chama RpcRevertToSelf ou RpcRevertToSelfEx reverter para seu próprio contexto de segurança.

Observação: se você estiver representando um usuário de um serviço Win32 e estiver chamando APIs que dependem de variáveis de ambiente do usuário, talvez seja necessário chamar RegDisablePredefinedCache antes de fazer a representação.