Função RpcGetAuthorizationContextForClient (rpcasync.h)
A função RpcGetAuthorizationContextForClient retorna o contexto Authz para um cliente RPC que pode ser usado com funções Authz para autenticação de alto desempenho. Com suporte apenas para sequências de protocolo ncalrpc e ncacn_* .
Sintaxe
RPC_STATUS RpcGetAuthorizationContextForClient(
[in, optional] RPC_BINDING_HANDLE ClientBinding,
[in] BOOL ImpersonateOnReturn,
[in] PVOID Reserved1,
[in, optional] PLARGE_INTEGER pExpirationTime,
[in] LUID Reserved2,
[in] DWORD Reserved3,
[in] PVOID Reserved4,
[out] PVOID *pAuthzClientContext
);
Parâmetros
[in, optional] ClientBinding
Identificador de associação no servidor que representa uma associação a um cliente. O servidor representa o cliente indicado por esse identificador. Se um valor igual a zero for especificado, o servidor representará o cliente que está sendo atendido por esse thread de servidor.
[in] ImpersonateOnReturn
Direciona a função para representar o cliente no retorno e, em seguida, retorna uma estrutura AUTHZ_CLIENT_CONTEXT_HANDLE . Defina esse parâmetro como diferente de zero para representar o cliente. Consulte Observações.
[in] Reserved1
Reservado. Precisa ser NULL.
[in, optional] pExpirationTime
Ponteiro para a data de validade e a hora do token. Se nenhum valor for passado, o token nunca expirará. O tempo de expiração não é imposto no momento.
[in] Reserved2
Reservado. Deve ser uma estrutura LUID com cada membro definido como zero.
[in] Reserved3
Reservado. Deve ser zero.
[in] Reserved4
Reservado. Precisa ser NULL.
[out] pAuthzClientContext
Ponteiro para uma estrutura AUTHZ_CLIENT_CONTEXT_HANDLE que pode ser passada diretamente para as funções Authz. Se a função falhar, o conteúdo desse parâmetro será indefinido.
Valor retornado
Valor | Significado |
---|---|
|
A chamada foi bem-sucedida. |
|
Um parâmetro reservado é diferente do valor prescrito. |
|
O cliente RPC não foi autenticado com êxito. |
Falha retorna um código de erro RPC_S_* ou um código de erro do Windows. As informações de erro estendidas estão disponíveis por meio de mecanismos de recuperação de código de erro padrão do RPC ou do Windows. Para obter uma lista de códigos de erro válidos, consulte RPC Return Values.
Comentários
A função RpcGetAuthorizationContextForClient pode ser chamada no mesmo contexto que a função RpcImpersonateClient . Todas as funções que representam marcar para determinar se o chamador tem o privilégio SeImpersonatePrivilege. Se o chamador tiver o SeImpersonatePrivilege ou se a identidade autenticada for a mesma que o chamador, a representação solicitada será permitida. Caso contrário, a representação terá êxito apenas no nível de Identificação.
Nota O privilégio SeImpersonatePrivilege não tem suporte até o Windows XP com Service Pack 2 (SP2).
A função RpcGetAuthorizationContextForClient tem suporte apenas para sequências de protocolo ncalrpc e ncacn_* e não tem suporte em pipes nomeados que implementam apenas a segurança de transporte.
A função RpcGetAuthorizationContextForClient é thread-safe e pode ser chamada de vários threads. O contexto retornado em pAuthzClientContext é independente da chamada de função e pode ser usado após sua conclusão. O chamador é responsável por liberar o contexto com uma chamada para a função RpcFreeAuthorizationContext .
A melhoria de desempenho observada usando a função RpcGetAuthorizationContextForClient, quando comparada aos métodos anteriores de representação ou acesso marcar ou reverter a si mesmo, depende dos seguintes fatores:
- Quantas vezes a função é chamada para uma determinada identidade de cliente.
- Sequência de protocolo e acompanhamento de identidade em vigor para a chamada de função.
Chamadas sobre ncalrpc com acompanhamento de identidade estático executam a função RpcGetAuthorizationContextForClient mais rapidamente do que chamadas por ncalrpc com acompanhamento dinâmico de identidade. Chamadas por ncacn_* são executadas com aproximadamente a mesma velocidade para uma determinada sequência de protocolo, independentemente de o rastreamento de identidade ser estático ou dinâmico.
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 | rpcasync.h (inclua Rpc.h) |
Biblioteca | Rpcrt4.lib |
DLL | Rpcrt4.dll |