Compartilhar via


Função RpcServerRegisterAuthInfoW (rpcdce.h)

A função RpcServerRegisterAuthInfo registra informações de autenticação com a biblioteca de tempo de execução do RPC.

Sintaxe

RPC_STATUS RpcServerRegisterAuthInfoW(
  RPC_WSTR                  ServerPrincName,
  unsigned long             AuthnSvc,
  RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
  void                      *Arg
);

Parâmetros

ServerPrincName

Ponteiro para o nome principal a ser usado para o servidor ao autenticar chamadas de procedimento remoto usando o serviço especificado pelo parâmetro AuthnSvc. O conteúdo do nome e sua sintaxe são definidos pelo serviço de autenticação em uso. Para obter mais informações, consulte Nomes de Entidade de Segurança.

AuthnSvc

Serviço de autenticação a ser usado quando o servidor recebe uma solicitação para uma chamada de procedimento remoto.

GetKeyFn

Endereço de uma rotina fornecida pelo servidor-aplicativo que retorna chaves de criptografia. Consulte RPC_AUTH_KEY_RETRIEVAL_FN.

Especifique um valor de parâmetro NULL para usar o método padrão de aquisição de chave de criptografia. Nesse caso, o serviço de autenticação especifica o comportamento padrão. Defina esse parâmetro para NULL ao usar o serviço de autenticação RPC_C_AUTHN_WINNT.

Serviço de autenticação GetKeyFn Arg Comportamento em tempo de execução
RPC_C_AUTHN_DPA Ignorado Ignorado Não dá suporte
RPC_C_AUTHN_GSS_KERBEROS Ignorado Ignorado Não dá suporte
RPC_C_AUTHN_GSS_NEGOTIATE Ignorado Ignorado Não dá suporte
RPC_C_AUTHN_GSS_SCHANNEL Ignorado Ignorado Não dá suporte
RPC_C_AUTHN_MQ Ignorado Ignorado Não dá suporte
RPC_C_AUTHN_MSN Ignorado Ignorado Não dá suporte
RPC_C_AUTHN_WINNT Ignorado Ignorado Não dá suporte
RPC_C_AUTHN_DCE_PRIVATE NULL nulo não Usa o método padrão de aquisição de chave de criptografia da tabela de chaves especificada; o argumento especificado é passado para a função de aquisição padrão.
RPC_C_AUTHN_DCE_PRIVATE nulo não NULL Usa a função de aquisição de chave de criptografia especificada para obter chaves da tabela de chaves padrão.
RPC_C_AUTHN_DCE_PRIVATE nulo não nulo não Usa a função de aquisição de chave de criptografia especificada para obter chaves da tabela de chaves especificada; o argumento especificado é passado para a função de aquisição.
RPC_C_AUTHN_DEC_PUBLIC Ignorado Ignorado Reservado para uso futuro.
 
 

A biblioteca de tempo de execução do RPC passa o valor do parâmetro ServerPrincName de RpcServerRegisterAuthInfo como o valor do parâmetro ServerPrincName para a função de aquisição do GetKeyFn. A biblioteca de tempo de execução RPC fornece automaticamente um valor para o parâmetro key version (KeyVer). Para um KeyVer valor de parâmetro de zero, a função de aquisição deve retornar a chave mais recente disponível. A função de recuperação retorna a chave de autenticação no parâmetro Key.

Se a função de aquisição chamada de RpcServerRegisterAuthInfo retornar um status diferente de RPC_S_OK, essa função falhará e retornará um código de erro para o aplicativo do servidor. Se a função de aquisição chamada pela biblioteca de tempo de execução RPC durante a autenticação da solicitação de chamada de procedimento remoto de um cliente retornar um status diferente de RPC_S_OK, a solicitação falhará e a biblioteca de tempo de execução do RPC retornará um código de erro para o aplicativo cliente.

Arg

Ponteiro para um parâmetro a ser passado para a rotina de GetKeyFn, se especificado. Esse parâmetro também pode ser usado para passar um ponteiro para uma estrutura de SCHANNEL_CRED para especificar credenciais explícitas se o serviço de autenticação estiver definido como SCHANNEL.

Se o parâmetro Arg estiver definido como NULL, essa função usará o certificado ou a credencial padrão se ele tiver sido configurado no serviço de diretório.

Valor de retorno

Valor Significado
RPC_S_OK
A chamada foi bem-sucedida.
RPC_S_UNKNOWN_AUTHN_SERVICE
O serviço de autenticação é desconhecido.
 
Observação Para obter uma lista de códigos de erro válidos, consulte RPC Return Values.
 

Observações

Um aplicativo de servidor chama RpcServerRegisterAuthInfo para registrar um serviço de autenticação a ser usado para autenticar chamadas de procedimento remoto. Um servidor chama essa rotina uma vez para cada serviço de autenticação que o servidor deseja registrar. Se o servidor chamar essa função mais de uma vez para um determinado serviço de autenticação, os resultados serão indefinidos.

O serviço de autenticação especificado por um aplicativo cliente (usando RpcBindingSetAuthInfo ou RpcServerRegisterAuthInfo) deve ser um dos serviços de autenticação especificados pelo aplicativo de servidor. Caso contrário, a chamada de procedimento remoto do cliente falhará e um código de status RPC_S_UNKNOWN_AUTHN_SERVICE será retornado.

Nota

O cabeçalho rpcdce.h define RpcServerRegisterAuthInfo 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

RpcBindingSetAuthInfo