Como cerrar la sesión si el usuario abandona tu sitio


http://www.asptutor.com

Como cerrar la sesión si el usuario abandona tu sitio

 

Colaboración enviada por Diego del Blanco Orobitg

Estimados amigos:

Os envío un pequeño truco que a mi me ha sido de gran utilidad y espero que a otras personas les pueda ayudar:

COMO CERRAR LA SESION SI EL USUARIO ABANDONA TU SITIO (PERO NO CIERRA EL NAVEGADOR) SIN ESPERAR LOS 20 MINUTOS DE INACTIVIDAD:

Si deseamos que la sesión se cierre inmediatamente cuando un usuario sale de nuestra aplicación asp podemos hacer lo siguiente:

Si nuestra aplicación es sencilla y transcurre en una única página, con poner este script

<script>
function openpopup(){
window.open("logout.asp","","width=300,height=338")
}
</script>


en nuestra página introducir: 

<body onunload="openpopup()">



lo tenemos solucionado.

El problema está en las aplicaciones en las que saltamos de una página a otra. ¿Cómo sabemos que nos hemos ido de la aplicación si el usuario de repente mete otra url en el navegador y se va?

La solución que yo he usado consiste en que toda la aplicación se ejecute dentro de la misma página htm. Es decir, creamos una página htm con dos frames: Control y Principal:

APLICACION.HTM

<html>
<head>
<title>Titulo de nuestra aplicacion</title>
</head>
<frameset rows="0,*" cols="*" frameborder="NO" border="0" framespacing="0"> 
<frame name="control" src="control.htm" scrolling="no" >
<frame name="principal" src="ENTRADA_DE_NUESTRA_APLICACION.ASP" scrolling="NO" >
</frameset>
<noframes> 
<body>
<p>Esta página usa marcos, pero su explorador no los admite.</p>
</body>
</noframes> 
</html>



El frame "control" tiene una altura de 0 pixels, por lo que no lo veremos, pero nos servirá para poner nuestro "espía":

CONTROL.HTM

<html>
<head>
<script>
function openpopup(){
window.open("cerrarsesion.asp","","width=300,height=338")
}
</script>
</head>
<body onunload="openpopup()">

</body>
</html>




En el archivo "cerrarsesion.asp" cerraremos la sesión y haremos lo que creamos que sea necesario hacer cuando salga el usuario.

De este modo, nuestra aplicación se ejecuta en el frame principal como si nada. (Ojo, debemos cambiar en nuestra aplicación los "TARGET="_PARENT"" por "TARGET="PRINCIPAL"" )

Diego del Blanco Orobitg