PDA

Ver la Versión Completa : Desconexion de la aplicacion por inactividad


mamen
05-07-2004, 13:24:22
Tengo una aplicación asp.net con delphi necesito utilizar algun control que me permita desconectar de la sesión a un usuario cuando este tenga la aplicación inactiva durante 10 minutos.

Me imagino que será con el control timer, este lo he utilizado para aplicacines WinForm pero nunca para web,pero no se cómo hacerlo. Necesito algun ejemplo o que alguien me oriente.

Muchas gracias por todo. Chao

__hector
05-07-2004, 15:05:11
Las aplicaciones web, por naturaleza, trabajan desconectadas, por lo que el control Timer no te funcionara en la misma. La sesion puedes matarla poniendo el tiempo de sesion en el IIS (Website/properties/home directory/configuration/options)

Si quieres tambien puedes alertar sobre el fin de la sesion al usuario, utilizando una etiqueta META para que redireccione a una pagina x cada n tiempo (donde n es el tiempo que tardara en redireccionar)

mamen
12-07-2004, 14:19:13
En el primer caso no encuentro esa ruta, me pierdo en el home directory, yo hago clic en el directorio de mi aplicación pero no veo la opción configuración.

Y en el segundo caso me podrias poner un ejemplo con esa instrucción.

Muchas gracias. Chao

__hector
12-07-2004, 18:43:30
Primer Caso, para windows XP/2000

Abro el console, despliego la lista de los websites, y sobre el website (Default website, en mi caso), hago click derecho, properties/Home directory/Configuration/options/Enable session state.

Si te pierdes, he organizado unos cuantos printscreens, que puedes ver en:

http://www.clubdelphi.com/~hector/iis.htm

Segundo caso, en el aspx:

<META HTTP-EQUIV="Refresh" CONTENT="segundos;URL=http://url">

mamen
13-07-2004, 11:30:01
Lo estoy provando en local. He puesto esto y no me funciona

<META name="GENERATOR" content="Borland Package Library 7.1" HTTP-EQUIV="Refresh" CONTENT="100;URL=http://localhost/AplicBDC/fdesconexion.aspx">

Tengo variables de sesion pasado un tiempo estas se pierden, se supone que es porq se ha desconectado por el tiempo que he puesto en el IIS pero no me aparece la página que quiero (la cual la indico en META)

Qué puedo hacer??? Muchas gracias por todo.

jachguate
13-07-2004, 11:38:07
Estas mezclando dos META's en uno... no creo que eso sea válido.

Pone el Refresh en un meta nuevo, y no el el mismo del GENERATOR.

Hasta luego.

;)

mamen
13-07-2004, 12:12:41
Tienes razon. Muchas gracias. Separándolos me ha funcionado perfectamente.


Pero todavia tengo una dudilla, se supone que con la etiqueta meta se refresca la página cada cierto tiempo según le indicas, cuando pasa ese tiempo en mi caso muestra la página de desconexión, pero yo sólo quiero que se muestre dicha página cuando este inactivo dicho tiempo. Hasta aqí todo bien, esto lo hace perfectamente.
Pero si yo estoy utilizando la aplicación y no esta inactiva cuando transcurra el tiempo de meta siempre va a aparecer la página de desconexión???

No se si me he explicado. Si no entiendes algo preguntame.

Muchas gracias por todo.

__hector
13-07-2004, 21:41:52
El tiempo de sesion, y el tiempo especificado en la etiqueta META es el mismo, en el sentido de que el servidor desconoce la actividad que estes realizando en tu maquina (jugando cartablanca, solitario o viendo algun video de dudoso contenido :D ), asi que la sesion vencera una vez pase una cierta cantidad de tiempo durante el cual no hayas interactuado con el servidor.

Entenderemos por interactuar, enviar alguna peticion (POST/GET) al servidor desde el navegador en este caso. Ahora bien, si hay interaccion, hay una rehabilitacion del tiempo de sesion (se reinicia el tiempo de conteo de vencimiento), y al mismo tiempo, la respuesta del servidor (la pagina con el contenido html) viene nuevamente con el valor de la etiqueta META con su valor inicial (nn segundos).

O sea, que cada vez que navegas dentro o fuera de dicha pagina, tanto el tiempo de sesion como el de la metatag se reinicia.

mamen
14-07-2004, 08:32:42
Ya lo he entendido. Muchas gracias por todo. Chao