Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/03/2005, 13:00
abraham_sirc
 
Fecha de Ingreso: marzo-2005
Mensajes: 2
Antigüedad: 20 años, 2 meses
Puntos: 0
Pregunta No logear un usuario si ya entro, usando Session_onEnd

Hola que tal.

Tengo la siguiente situación. Mi sitio en ASP y base de datos en MySQL, al pasar un usuario por login.asp (cuenta y password correctos) guardo su ID en una variable session. Cuando cierra su sesion o se va a la pagina principal abro una pequeña ventana que se cierra sola al terminar de guardar en una tabla su salida (previamente guardo su entrada y en esta su salida). Necesito que el sitio no permita que un usuario entre mas de una vez al mismo tiempo, para este uno una simple tabla donde guardo su ID al entrar y lo borro cuando sale (con la pequeña ventana p.ej.), asi, si quiere logearse nuevamente y su ID aun existe en la tabla, no se le permite y muestro un mensaje como "Tiene una sesión activa". Hasta todo bien, pero hay exploradores que no permiten ventanas tipo popup, asi que en GLOBAL.ASA manejo el siguiente código:

sub Session_OnEnd
cstrCon="CADENA DE CONEXION A MI BASE"
set cn = Server.CreateObject("ADODB.Connection")
ConDB (cstrCon)
DelID="DELETE FROM TABLA WHERE ID=" & session("ID") & ""
ConDB.Execute (DelID)
ConDB.Close
set ConDB=nothing
end sub

En mis pruebas en mi servidor funciona (http://127.0.0.1/Sitio), pero en las pc`s de mi red no funciona, como si no ejecutara el evento SessiononEnd .

Alguna sugerencia?. Aparte, si el cliente (suponiendo cuando lo suba a un Hosting) esta en mi sitio y éste pierde su conexion a Internet (que a mas de uno le ha pasado), el evento Session_onEnd se ejecuta? (esto me preocupa un poco mas ).

Si me pueden ayudar con alguna sugerencia o idea , evito usar cokkies para el cliente ya que podrian entrar en una pc y logearse nuevamente en otra, por eso queria tener en el servidor esa informacion de quien esta activo y poder vaciar el registro correspondiente cuando dejen el sitio.

Gracias