Compartir a través de


Función RpcBindingSetAuthInfoW (rpcdce.h)

La función RpcBindingSetAuthInfo establece la información de autenticación y autorización de un identificador de enlace.

Sintaxis

RPC_STATUS RpcBindingSetAuthInfoW(
  RPC_BINDING_HANDLE       Binding,
  RPC_WSTR                 ServerPrincName,
  unsigned long            AuthnLevel,
  unsigned long            AuthnSvc,
  RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  unsigned long            AuthzSvc
);

Parámetros

Binding

Identificador de enlace de servidor al que se va a aplicar la información de autenticación y autorización.

ServerPrincName

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

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

AuthnLevel

Nivel de autenticación que se realizará en las llamadas a procedimientos remotos realizadas mediante Enlace. Para obtener una lista de los niveles de autenticación compatibles con RPC, consulte la lista de Authentication-Level constantes.

AuthnSvc

Servicio de autenticación que se va a usar. Consulte Nota.

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

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

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. Al usar el servicio de autenticación RPC_C_AUTHN_WINNT AuthIdentity 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.

Al seleccionar el servicio de autenticación RPC_C_AUTHN_GSS_SCHANNEL, el parámetro AuthIdentity debe ser un puntero a una estructura de SCHANNEL_CRED (definida en Schannel.h). 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.

Nota Al seleccionar el servicio de autenticación de RPC_C_AUTHN_GSS_SCHANNEL, el parámetro AuthIdentity también puede ser un puntero a una estructura de SCH_CRED. Sin embargo, en Windows XP y versiones posteriores de Windows, la única estructura aceptable que se pasará como parámetro AuthIdentity para el servicio de autenticación de RPC_C_AUTHN_GSS_SCHANNEL es la estructura de SCHANNEL_CRED.
 

AuthzSvc

Servicio de autorización implementado por el servidor para la interfaz de interés. Consulte Nota.

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.

Nota Para obtener más información, vea Authentication-Service Constantes.
 

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.
 

Observaciones

Una aplicación cliente llama a la función de RpcBindingSetAuthInfo para configurar un identificador de enlace de servidor para realizar llamadas a procedimientos remotos autenticados. No es necesario que un cliente llame a esta función.

A menos que un cliente llame a RpcBindingSetAuthInfo, no se autentican las llamadas a procedimientos remotos en el identificador de enlace de de enlace de . Un servidor puede llamar a RpcBindingInqAuthClient desde dentro de una llamada a procedimiento remoto para determinar si esa llamada se ha autenticado.

La función RpcBindingSetAuthInfo toma una instantánea de las credenciales. Por lo tanto, se puede liberar la memoria dedicada al parámetro AuthIdentity antes de que el identificador de enlace.

Debido a distintos requisitos de diferentes versiones de RPC de Microsoft, Microsoft recomienda que la aplicación mantenga un puntero al parámetro AuthIdentity siempre que exista el identificador de enlace. Si lo hace, aumenta la portabilidad de la aplicación.

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

Nota La función RpcBindingSetAuthInfo no debe llamarse en un identificador de enlace mientras una llamada RPC en el mismo identificador está en curso. Si lo hace, se generan resultados indefinidos.
 

Nota

El encabezado rpcdce.h define RpcBindingSetAuthInfo 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
servidor mínimo admitido Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
de la plataforma de destino de Windows
encabezado de rpcdce.h (include Rpc.h)
biblioteca de Rpcrt4.lib
DLL de Rpcrt4.dll

Consulte también

msmq Security Services

RpcBindingInqAuthInfo

RpcBindingSetOption

RpcServerRegisterAuthInfo