Função RpcBindingInqAuthClientEx (rpcdce.h)

Um aplicativo de servidor chama a função RpcBindingInqAuthClientEx para obter informações estendidas sobre o programa cliente que fez a chamada de procedimento remoto.

Sintaxe

RPC_STATUS RpcBindingInqAuthClientEx(
  RPC_BINDING_HANDLE ClientBinding,
  RPC_AUTHZ_HANDLE   *Privs,
  RPC_CSTR           *ServerPrincName,
  unsigned long      *AuthnLevel,
  unsigned long      *AuthnSvc,
  unsigned long      *AuthzSvc,
  unsigned long      Flags
);

Parâmetros

ClientBinding

Identificador de associação do cliente que fez a chamada de procedimento remoto. Esse valor pode ser zero. Consulte Observações.

Privs

Retorna um ponteiro para um identificador para as informações privilegiadas do aplicativo cliente que fez a chamada de procedimento remoto no identificador de associação ClientBinding . Para chamadas ncalrpc , Privs contém uma cadeia de caracteres com o nome principal do cliente.

O aplicativo de servidor deve converter o parâmetro Privs para o tipo de dados especificado pelo parâmetro AuthnSvc . Os dados referenciados por esse argumento são somente leitura e não devem ser modificados pelo aplicativo de servidor. Se o servidor quiser preservar qualquer um dos dados retornados, o servidor deverá copiar os dados na memória alocada pelo servidor.

Para obter mais informações sobre SSPs, consulte Provedores de Suporte de Segurança (SSPs).

ServerPrincName

Retorna um ponteiro para um ponteiro para o nome da entidade de segurança do servidor especificado pelo aplicativo de servidor que chamou a função RpcServerRegisterAuthInfo . O conteúdo do nome retornado e sua sintaxe são definidos pelo serviço de autenticação em uso. Para o SSP do SCHANNEL, o nome da entidade de segurança está no formato msstd. Para obter mais informações sobre o formato msstd, consulte Nomes de entidade de segurança.

Especifique um valor nulo para impedir que RpcBindingInqAuthClientEx retorne o parâmetro ServerPrincName . Nesse caso, o aplicativo não chama a função RpcStringFree .

AuthnLevel

Retorna um ponteiro definido para o nível de autenticação solicitado pelo aplicativo cliente que fez a chamada de procedimento remoto no identificador de associação ClientBinding . Para obter uma lista dos níveis de autenticação com suporte para RPC, consulte Constantes no nível de autenticação.

Especifique um valor nulo para impedir que RpcBindingInqAuthClientEx retorne o parâmetro AuthnLevel .

AuthnSvc

Retorna um ponteiro definido para o serviço de autenticação solicitado pelo aplicativo cliente que fez a chamada de procedimento remoto no identificador de associação ClientBinding . Para obter uma lista dos serviços de autenticação com suporte para RPC, consulte Autenticação-Constantes de Serviço.

Especifique um valor nulo para impedir que RpcBindingInqAuthClientEx retorne o parâmetro AuthnSvc .

ObservaçãoAuthnSvc corresponde ao SECURITY_STATUS retornado por QueryContextAttributes em cada SSP baseado em certificado para SECPKG_ATTR_DCE_INFO ou SECPKG_ATTR_REMOTE_CERT_CONTEXT.
 

AuthzSvc

Retorna um ponteiro definido para o serviço de autorização solicitado pelo aplicativo cliente que fez a chamada de procedimento remoto no identificador de associação de associação . Para obter uma lista dos serviços de autorização com suporte para RPC, consulte Authorization-Service Constants .

Especifique um valor nulo para impedir que RpcBindingInqAuthClientEx retorne o parâmetro AuthzSvc . Esse parâmetro não é usado pelo serviço de autenticação RPC_C_AUTHN_WINNT. O valor retornado sempre será RPC_S_AUTHZ_NONE.

Flags

Controla o formato do nome da entidade de segurança. Esse parâmetro pode ser definido como o valor a seguir.

Valor Significado
RPC_C_FULL_CERT_CHAIN
Retorna o nome da entidade de segurança em formato completo .

Valor retornado

Valor Significado
RPC_S_OK
A chamada foi bem-sucedida.
RPC_S_INVALID_BINDING
O identificador de associação era inválido.
RPC_S_WRONG_KIND_OF_BINDING
Esse foi o tipo errado de associação para a operação.
RPC_S_BINDING_HAS_NO_AUTH
A associação não tem informações de autenticação.
 
Nota Para obter uma lista de códigos de erro válidos, consulte RPC Return Values.
 

Comentários

Um aplicativo de servidor chama a função RpcBindingInqAuthClientEx para obter o nome principal ou os atributos de privilégio do cliente autenticado que fez a chamada de procedimento remoto. Além disso, RpcBindingInqAuthClientEx retorna o serviço de autenticação, o nível de autenticação e o nome da entidade de segurança do servidor especificados pelo cliente. O servidor pode usar os dados retornados para fins de autorização.

A biblioteca de tempo de execução RPC aloca memória para o parâmetro ServerPrincName retornado. O aplicativo é responsável por chamar a função RpcStringFree para a cadeia de caracteres de argumento retornada.

Para chamadas RPC síncronas, o aplicativo de servidor pode usar zero como o valor para o parâmetro ClientBinding . O uso de zero recupera as informações de autenticação e autorização da chamada de procedimento remoto em execução no momento.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho rpcdce.h (inclua Rpc.h)
Biblioteca Rpcrt4.lib
DLL Rpcrt4.dll

Confira também

RpcBindingInqAuthClient

RpcBindingSetAuthInfo

RpcStringFree