Inicialización del contexto del servidor
Al igual que el cliente, el servidor también adquiere una credenciales identificador para estar listo para responder a una solicitud de autenticación entrante del cliente. Las credenciales del servidor se usan para autenticar el servidor en el cliente en protocolos de seguridad que admiten la autenticación del servidor o la autenticación mutua. El servidor obtiene un identificador de sus credenciales definidas por la cuenta de servicio usada para iniciar el servidor. Para ello, llama a AcquireCredentialsHandle.
El servidor puede adquirir su identificador de credenciales y, a continuación, entrar en un estado de escucha, o puede esperar en un estado de escucha hasta que llegue una solicitud de conexión y, a continuación, adquirir un identificador de credenciales de entrada. Para obtener más información sobre las funciones de credenciales, consulte Administración de credenciales.
Cuando el servidor recibe un mensaje de solicitud de conexión de un cliente, crea un contexto de seguridad local para el cliente mediante AcceptSecurityContext (General). El servidor usa este contexto de seguridad local para llevar a cabo solicitudes futuras por el mismo cliente. Para obtener más información sobre las funciones de contexto, vea Context Management.
El servidor comprueba el estado de devolución y el descriptor de búfer de salida para asegurarse de que no hay errores hasta ahora y puede rechazar la solicitud de conexión si hay errores. Si hay información en el búfer de salida devuelto por AcceptSecurityContext (General), agrupa ese búfer en un mensaje de respuesta al cliente.
Cualquier búfer de salida de AcceptSecurityContext (General) debe devolverse al cliente. Además, si el estado de devolución requiere que el protocolo continúe (SEC_I_CONTINUE_NEEDED o SEC_I_COMPLETE_AND_CONTINUE), se requiere otro intercambio de mensajes con el cliente.
Para las piernas adicionales, el servidor espera a que el cliente responda con otro mensaje. Esta espera puede agotarse el tiempo de espera para evitar un ataque de denegación de servicio en el que un cliente nunca responde, lo que provoca que un subproceso de servidor y pronto, todos los subprocesos de servidor, dejen de responder.