El evento Session_End no se activa cuando el navegador está cerrado, se dispara cuando el servidor no ha recibido una solicitud del usuario en un período de tiempo específico (por defecto 20 minutos). Esto significa que si usa Session_End para eliminar usuarios, permanecerán en el chat durante 20 minutos después de que hayan cerrado el navegador.
Le sugiero que guarde la hora de la última solicitud en el objeto de usuario. De esta forma, puede determinar qué tan activo es el usuario y qué posibilidades hay de que el usuario abandone el chat. Por ejemplo, puede mostrar a un usuario que no ha hecho nada durante dos minutos como inactivo.
También puede dejar que la aplicación de chat consulte periódicamente el servidor (si no lo hace ya). Esto actualizaría la última hora de solicitud en el objeto y mantendría al usuario vivo mientras la ventana de chat esté abierta.
Puede utilizar el evento onunload en el navegador para enviar una solicitud de cierre de sesión al servidor cuando el usuario abandone la página. Esto, por supuesto, solo funciona si el usuario todavía tiene conectividad de red. El evento onunload también se activa cuando recargas la página, por lo que tendrías que hacer un seguimiento de por qué se desencadena el evento para usarlo.
En mi tabla hash contiene clave, que también es Session ["UserID"] contiene, Esta sesión se usa para pasar el parámetro usrid de Logout (string usrid), en Session_End event, Si tiene alguna idea, por favor ayúdenme ... –
No entiendo tu pregunta. Lo siento. – MartinHN