Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-08-2004
mamen mamen is offline
Miembro
 
Registrado: jun 2004
Posts: 80
Poder: 20
mamen Va por buen camino
Unhappy Desconexion de la aplicacion por inactividad utilizando META

Hola a todos!!! Tengo un problema necesito desconectar mi aplicación web con ASP.NET pasados unos minutos para ello tengo el siguiente código

<META HTTP-EQUIV="Refresh" CONTENT="100;URL=https://localhost/AplicBDC/fdesconexion.aspx">

Muestro una página de desconexión, pero me he dado cuenta q una vez mostrada esta página si voy para Atras con los botenes estandar de la barra del explorer y vuelvo a la página principal esta sigue funcionando que puedo hacer??? Cómo puedo desconectar la sesion realmente

Muchas gracias por todo. Espero respuestas CHAO
Responder Con Cita
  #2  
Antiguo 23-08-2004
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
Prueba con session.abandon(), y en el load de cada pagina verifica si el objeto session tiene algun valor.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #3  
Antiguo 24-08-2004
mamen mamen is offline
Miembro
 
Registrado: jun 2004
Posts: 80
Poder: 20
mamen Va por buen camino
Cómo puedo verificar si el objeto session tiene algún valor????

He probado con session.SessionID y tiene el mismo valor antes y despues de ejecutar session.abandon

Espero tu respuesta. Gracias
Responder Con Cita
  #4  
Antiguo 24-08-2004
mamen mamen is offline
Miembro
 
Registrado: jun 2004
Posts: 80
Poder: 20
mamen Va por buen camino
Question

Como el metodo abandon llama al Session_End del Global.asax me he creado una variable Application['sesionterminada']:='True'; y esta es la que comparo en el load de cada página.

Esta variable la inicializo a falso en la pagina principal. Es correcto definir una variable de aplicacion para este caso???

Aparentemente funciona pero crees que afectará cuando haya varias sesiones abiertas???
El método Abandon a que sesiones afecta, sólo a la que lo llama no? y que pasa con el resto seguirian con sus consultas sin notar nada???

Muchas gracias. Chao
Responder Con Cita
  #5  
Antiguo 24-08-2004
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
Las variables de aplicacion son iguales para todas las sesiones, o sea que se comparten entre todos los usuarios, cosa que no es igual con las variables de sesion, que son particulares.

Tienes dos formas de lograr lo que quieres: guardando en una variable de sesion algun valor clave por el que preguntaras en cada pagina (por ejemplo, Session("UsuarioID") := talvalor, y en el load de cada pagina, if Session("UsuarioID") = "" then talcosa), o utilizar tambien el objeto cache, que funciona relativamente igual que una sesion, pero es mucho mas parametizable. Seria Cache("Llave") := valor.

Mas documentacion en el msdn, y quizas en la ayuda de delphi (no creo que incluya toda la ayuda del framework, la verdad no la he visto)
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #6  
Antiguo 25-08-2004
mamen mamen is offline
Miembro
 
Registrado: jun 2004
Posts: 80
Poder: 20
mamen Va por buen camino
Antes de crearme la variable de aplicación me la cree de session pero tenia el problema de que al ejecutar el método abandon el valor de la variable se perdia y entonces la comparación en el load no funcionaba.

Voy a probar con la cache, en qué se diferencian?

Luego te cuento.Chao.
Responder Con Cita
  #7  
Antiguo 25-08-2004
mamen mamen is offline
Miembro
 
Registrado: jun 2004
Posts: 80
Poder: 20
mamen Va por buen camino
No me reconoce la var Cache. Tengo que hacer algo mas???

Mi aplicación es con delphi.net y asp.net.

Muchas gracias. Chao
Responder Con Cita
  #8  
Antiguo 26-08-2004
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
Como que la comparacion del load no funcionaba? Si la idea es que cuando se venza la sesion ese valor no exista, creo que es facilmente manejable. A que te refieres cuando dices que no funciona?
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #9  
Antiguo 27-08-2004
mamen mamen is offline
Miembro
 
Registrado: jun 2004
Posts: 80
Poder: 20
mamen Va por buen camino
Tengo una variable Session[sesterminada]=false, cuando ejecuto el metodo Abandon esta variable se pone a true. En cada página en el Load realizo la comparación de si la sesión está terminada si es asi me muestra la página de desconexión y en caso contrario sigue podiendo manejar la aplicación.

El problema está en q una vez que se ha ejecutado el metodo Abandon y la sesion se cierra el valor de mi variable de sesion tb se pierde y me da un error al comparar dicha variable. Es por eso por lo que me la cree como variable de Aplicacion, en este caso no da ningún error pero tampoco funciona porque aunq un usuario la ponga true (al ejecutar el met abandon)si otro arranca la aplicación inmediatamente la ha puesto a false(se inicializa a false siempre en la primera pag al acceder).

Necesito crearme una variable global para cada sesion, y q esta no se pierda cuando la sesion se cierre para poder comparar. O si se te ocurre a ti algo distinto tambien me sirve??? Muchas gracias por todo.

Si no entiendes algo dimelo. Gracias.Chao.
Responder Con Cita
  #10  
Antiguo 27-08-2004
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
Simple,

Si al intentar comparar el valor de una variable de sesion que no existe me dices que da error, se puede inducir que ese error se deriva del echo de que la variable no existe (cuantas vueltas filosoficas al mismo asunto ), y si no existe cuando debiera existir, se debe a que, o no fue creada, o fue destruida.

Cualquiera de las dos razones nos es igual de valida, por lo que simplemente metemos el codigo en un try/except/finally, y podremos manejar dicha excepcion. Algo como:

try
.... comparacion actual

except
... ese asunto no existe, que es igual a que sea false
finallly
.. cualquier otro codigo, el finally no es necesario
end;

Capish?
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #11  
Antiguo 08-09-2004
mamen mamen is offline
Miembro
 
Registrado: jun 2004
Posts: 80
Poder: 20
mamen Va por buen camino
Perdona no he podido responder antes porque estaba de vacaciones. Ya lo he probado. Tienes razón esa es la solución. Muchas gracias!!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:00:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi