Función RpcBindingSetAuthInfoExA (rpcdce.h)

La función RpcBindingSetAuthInfoEx establece la información de calidad de servicio, autorización y autenticación de un controlador de enlace.

Sintaxis

RPC_STATUS RpcBindingSetAuthInfoExA(
  RPC_BINDING_HANDLE       Binding,
  RPC_CSTR                 ServerPrincName,
  unsigned long            AuthnLevel,
  unsigned long            AuthnSvc,
  RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  unsigned long            AuthzSvc,
  RPC_SECURITY_QOS         *SecurityQos
);

Parámetros

Binding

Identificador de enlace de servidor en el que se establece la información de autenticación y autorización.

ServerPrincName

Puntero al nombre principal esperado del servidor al que hace referencia Binding. El contenido del nombre y su sintaxis se definen mediante el servicio de autenticación en uso.

Nota Para conocer el conjunto de nombres de destino permitidos para los SSP, consulte los comentarios de la documentación de InitializeSecurityContext .
 

AuthnLevel

Nivel de autenticación que se va a realizar en las llamadas a procedimientos remotos realizadas mediante Binding. Para obtener una lista de los niveles de autenticación compatibles con RPC, consulte Constantes de nivel de autenticación.

AuthnSvc

Servicio de autenticación que se va a usar.

Especifique RPC_C_AUTHN_NONE para desactivar la autenticación para las llamadas a procedimientos remotos realizadas mediante Binding.

Si se especifica RPC_C_AUTHN_DEFAULT, la biblioteca en tiempo de ejecución rpc usa el servicio de autenticación RPC_C_AUTHN_WINNT para las llamadas a procedimientos remotos realizadas mediante Binding.

AuthIdentity

Controle la estructura que contiene las credenciales de autenticación y autorización del cliente adecuadas para el servicio de autenticación y autorización seleccionados.

Cuando se usa el servicio de autenticación de RPC_C_AUTHN_WINNTAuthIdentity debe ser un puntero a una estructura de SEC_WINNT_AUTH_IDENTITY (definida en Rpcdce.h). Los servicios de autenticación Kerberos y Negotiate también usan la estructura de SEC_WINNT_AUTH_IDENTITY .

Especifique un valor NULL para usar el contexto de inicio de sesión de seguridad para el espacio de direcciones actual. Pase el valor RPC_C_NO_CREDENTIALS para usar un contexto de inicio de sesión anónimo. Tenga en cuenta que RPC_C_NO_CREDENTIALS solo es válido si RPC_C_AUTHN_GSS_SCHANNEL está seleccionado como servicio de autenticación.

AuthzSvc

Servicio de autorización implementado por el servidor para la interfaz de interés. La validez y confiabilidad de los datos de autorización, como cualquier dato de aplicación, depende del servicio de autenticación y del nivel de autenticación seleccionado. Este parámetro se omite al usar el servicio de autenticación RPC_C_AUTHN_WINNT. Vea la Nota.

SecurityQos

Puntero a la estructura RPC_SECURITY_QOS , que define la calidad de servicio de seguridad.

Nota Para obtener una lista de los servicios de autenticación compatibles con RPC, consulte Authentication-Service Constants(Constantes de servicio de autenticación).
 

Valor devuelto

Valor Significado
RPC_S_OK
La llamada se realizó correctamente.
RPC_S_INVALID_BINDING
El identificador de enlace no era válido.
RPC_S_WRONG_KIND_OF_BINDING
Este era el tipo incorrecto de enlace para la operación.
RPC_S_UNKNOWN_AUTHN_SERVICE
Servicio de autenticación desconocido.
 
Nota Para obtener una lista de códigos de error válidos, vea Rpc Return Values.
 

Comentarios

Una aplicación cliente llama a la función RpcBindingSetAuthInfoEx para configurar un identificador de enlace de servidor para realizar llamadas a procedimientos remotos autenticados. Esta función proporciona la capacidad de establecer información de calidad de servicio de seguridad en el identificador de enlace. De lo contrario, es idéntico a RpcBindingSetAuthInfo.

A menos que un cliente llame a RpcBindingSetAuthInfoEx, todas las llamadas a procedimiento remoto en Binding no se autentican. No es necesario que un cliente llame a esta función.

La función RpcBindingSetAuthInfoEx toma una instantánea de las credenciales. Por lo tanto, la memoria dedicada al parámetro AuthIdentity se puede liberar antes del identificador de enlace. La excepción a esto es cuando la aplicación usa RpcBindingSetAuthInfoEx con RPC_C_QOS_IDENTITY_DYNAMIC y también especifica un valor distinto de NULL para AuthIdentity.

Nota No se debe llamar a la función RpcBindingSetAuthInfo en un identificador de enlace mientras hay una llamada RPC en el mismo identificador en curso. Al hacerlo, se generan resultados indefinidos.
 
Debido a los distintos requisitos de diferentes versiones de RPC de Microsoft, Microsoft recomienda que una aplicación mantenga un puntero al parámetro AuthIdentity mientras exista el identificador de enlace. Al hacerlo, aumenta la portabilidad de las aplicaciones.

Windows Server 2003 con SP1 y Windows XP con SP2: Para Windows XP SP2 y Windows Server 2003 SP1, el puntero al parámetro AuthIdentity no se debe mantener durante la vida útil del identificador de enlace. Este puntero solo se debe mantener si se realizan llamadas posteriores a RpcBindingInqAuthInfo o RpcBindingInqAuthInfoEx .

Nota La secuencia de protocolo ncalrpc solo admite RPC_C_AUTHN_WINNT, pero admite la autenticación mutua; proporcione un SPN y solicite autenticación mutua a través del parámetro SecurityQOS para lograrlo.
 

Nota

El encabezado rpcdce.h define RpcBindingSetAuthInfoEx como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado rpcdce.h (include Rpc.h)
Library Rpcrt4.lib
Archivo DLL Rpcrt4.dll

Consulte también

RPC_SECURITY_QOS

RpcBindingInqAuthInfoEx

RpcServerRegisterAuthInfo