Foros del Web » Programando para Internet » ASPX (.net) »

Problema ASP cerrar sesión

Estas en el tema de Problema ASP cerrar sesión en el foro de ASPX (.net) en Foros del Web. Hola, intentaré explicar mi problema de la manera más sencilla posible. Estoy haciendo un sitio web en ASP.Net y C#. En el sitio quiero mostrar ...
  #1 (permalink)  
Antiguo 20/12/2010, 23:01
 
Fecha de Ingreso: septiembre-2003
Mensajes: 6
Antigüedad: 20 años, 6 meses
Puntos: 0
Problema ASP cerrar sesión

Hola, intentaré explicar mi problema de la manera más sencilla posible.

Estoy haciendo un sitio web en ASP.Net y C#. En el sitio quiero mostrar la gente que hay conectada en ese momento, así que no se me ocurre otra manera que en una tabla que he creado en la base de datos, insertar las ID de la gente que se vaya conectando.

Si un usuario pulsa cerrar sesión, se hace un DELETE de su ID en dicha tabla, se borran sus variables de sesión, etc.

Pero si pasan 5 minutos (timeout) o cierra el navegador, la sesión se cerrará y demás, pero su ID seguirá en la base de datos, así que los demás usuarios lo seguirán viendo como conectado... Además de esto, cuando se vuelva a conectar dará un fallo ya que intenta insertar una ID que ya hay en la base de datos.

¿No habría alguna forma modificar las acciones que se hacen en el timeout para poner ahí un DELETE? ¿Se os ocurre alguna otra forma de borrar la ID o de controlar los usuarios conectados?

Gracias y un saludo.
  #2 (permalink)  
Antiguo 21/12/2010, 07:19
 
Fecha de Ingreso: noviembre-2009
Mensajes: 29
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema ASP cerrar sesión

Creo que por el global.asax puedes gestionar alguna función al terminar la sesión, más detalles desconosco ya que nunca he usado el global pero te puede servir como una sugerencia.

Saludos y suerte
  #3 (permalink)  
Antiguo 21/12/2010, 13:59
 
Fecha de Ingreso: septiembre-2003
Mensajes: 6
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Problema ASP cerrar sesión

He estado mirando justamente eso y no hay nada concreto que explique cómo hacerlo :S

No sé por qué mucha gente habla de ese archivo pero luego no buenas explicaciones por la red, al menos yo con la información del mdsn me pierdo bastante.

Pero bueno, se me ha ocurrido otra cosa, a ver qué tal la veis:

En la tabla usuarios, crear un campo que se llame "online" o "ultimavisita" o X y cuando el usuario hace cualquier cosa en la web, cambia de página y demás, se actualice ese campo con la fecha y hora actual, y el control que controla los usuarios online, mire todas las fechas/horas de los usuarios y si es de hace menos de cinco minutos (por ejemplo) que lo ponga como online.

¿Qué os parece?
  #4 (permalink)  
Antiguo 21/12/2010, 14:48
 
Fecha de Ingreso: noviembre-2009
Mensajes: 29
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema ASP cerrar sesión

Siempre la idea es recurrir a la BD la menor cantidad de veces, pero no deja de ser una alternativa.

Buscando encontre el siguiente link:

http://forums.asp.net/p/1270414/2399653.aspx

Lo que hace es utilizar una función javascript para llamar un metodo de la página.aspx

Código:
function window.onbeforeunload()       
  {       
      if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)       
      {    
          var sxmlhttp=new ActiveXObject("Microsoft.XMLHTTP");       
          xmlhttp.open("GET","exit.aspx",false);       
          xmlhttp.send();   
      }   
  }
Cuando cierra el explorador se ejecuta el evento LOAD de la pagina exit.aspx

No lo he implementado, solo te dejo la respuesta de un foro y puedes seguir buscando otras alternativas. Busca en inglés si es necesario (siempre recomendable).

Saludos y suerte
  #5 (permalink)  
Antiguo 21/12/2010, 16:07
 
Fecha de Ingreso: septiembre-2003
Mensajes: 6
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Problema ASP cerrar sesión

Gracias de nuevo por la respuesta, ahí ya veo nuevas alternativas, así que voy a investigar más sobre lo que has puesto.

¡Mil gracias!

Etiquetas: asp, cerrar, sesión, aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:33.