Función RpcBindingSetAuthInfo (rpcdce.h)
La función RpcBindingSetAuthInfo establece la información de autenticación y autorización de un controlador de enlace.
Sintaxis
RPC_STATUS RpcBindingSetAuthInfo(
RPC_BINDING_HANDLE Binding,
RPC_CSTR 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 Binding. El contenido del nombre y su sintaxis se definen mediante el servicio de autenticación en uso.
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 la lista de constantes de nivel de autenticación.
AuthnSvc
Servicio de autenticación que se va a usar. Vea la Nota.
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. Al usar el servicio de autenticación de 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.
AuthzSvc
Servicio de autorización implementado por el servidor para la interfaz de interés. Vea la 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.
Valor devuelto
Valor | Significado |
---|---|
|
La llamada se realizó correctamente. |
|
El identificador de enlace no era válido. |
|
Este era el tipo incorrecto de enlace para la operación. |
|
Servicio de autenticación desconocido. |
Comentarios
Una aplicación cliente llama a la función 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 procedimiento remoto en el identificador de enlace de enlace. Un servidor puede llamar a RpcBindingInqAuthClient desde 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, la memoria dedicada al parámetro AuthIdentity se puede liberar antes del 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 mientras exista el identificador de enlace. Al hacerlo, 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, 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 .
Requisitos
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 |