Compartilhar via


Função RpcBindingInqAuthClientExA (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 RpcBindingInqAuthClientExA(
  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 de cliente do cliente que fez a chamada de procedimento remoto. Esse valor pode ser zero. Consulte Comentários.

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 de 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 do 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 principal está no formato msstd. Para obter mais informações sobre o formato msstd, consulte Principal Names.

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 Authentication-Level Constants.

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

AuthnSvc

Retorna um conjunto de ponteiros 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 Authentication-Service Constants.

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

Observação AuthnSvc corresponde à SECURITY_STATUS retornada por QueryContextAttributes em cada SSP baseado em certificado para SECPKG_ATTR_DCE_INFO ou SECPKG_ATTR_REMOTE_CERT_CONTEXT.
 

AuthzSvc

Retorna um conjunto de ponteiros 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 compatíveis com RPC, consulte Authorization-Service Constantes .

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 de completo.

Valor de retorno

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
Este 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.
 
Observação Para obter uma lista de códigos de erro válidos, consulte RPC Return Values.
 

Observações

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 do 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.

Nota

O cabeçalho rpcdce.h define RpcBindingInqAuthClientEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

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

Consulte também

RpcBindingInqAuthClient

RpcBindingSetAuthInfo

RpcStringFree