Compartir a través de


Inicialización del contexto de cliente

Para establecer una conexión segura, el cliente adquiere una credenciales de salida identificador antes de enviar una solicitud de autenticación al servidor. El servidor crea un contexto de seguridad para el cliente a partir de la solicitud de autenticación. Hay dos funciones SSPI del lado cliente implicadas en la configuración de autenticación:

El código de este proceso se puede ver en la función GenClientContext en Using SSPI with a Windows Sockets Client.

Si un programa cliente necesita usar credenciales además de sus propias credenciales de inicio de sesión, como un nombre de usuario, un nombre de dominio y una contraseña diferentes, los proporciona en el acquireCredentialsHandle llamada con una estructura de SEC_WINNT_AUTH_IDENTITY que especifica las credenciales adicionales. Para obtener más información sobre las funciones de credenciales, consulte Administración de credenciales.

Nota

El miembro Flags de la estructura SEC_WINNT_AUTH_IDENTITY se puede establecer en SEC_WINNT_AUTH_IDENTITY_ANSI cuando las cadenas de la estructura son ASCI o OEM. Las cadenas ANSI se pueden usar con el miembro flags de de la estructura SEC_WINNT_AUTH_IDENTITY establecida en SEC_WINNT_AUTH_IDENTITY_UNICODE si se convierten por primera vez en Unicode mediante la función MultiByteToWideChar.

 

Para iniciar la primera etapa de la autenticación, el cliente llama a InitializeSecurityContext (General) para obtener un token de seguridad inicial que se enviará en un mensaje de solicitud de conexión al servidor.

El cliente usa la información del token de seguridad recibida en el descriptor del búfer de salida para generar un mensaje que se va a enviar al servidor. La construcción del mensaje, en términos de colocación de varios búferes, etc., forma parte del protocolo de aplicación de y debe entenderse por ambas partes.

El cliente comprueba el estado devuelto de InitializeSecurityContext (General) para ver si la autenticación se completará en una sola llamada. Un estado devuelto de SEC_I_CONTINUE_NEEDED indica que el protocolo de seguridad requiere varios mensajes de autenticación. Para obtener más información sobre las funciones de contexto, vea Context Management.