Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Como se cuando murio la session?

1,016 views
Skip to first unread message

SergioT

unread,
Aug 10, 2006, 8:07:34 PM8/10/06
to
Hola

tengo la sgte situacion, en mi aplicacion defino variables Session y
variables Application, si dejo el IE por varios minutos se desconecta del
server, como se supone debe ocurrir, la pregunta es:

Como puedo identificar en base a variables de session que la sesion caducó
y redireccionar el sitio a la pagina de login?


Gracias
SergioT


the4man

unread,
Aug 11, 2006, 2:52:17 AM8/11/06
to
Cuando inicies la sesion: Session["iniciada"] = true

Para comprobar si la sesion sigue activa:

if (Session["iniciada"]!="")
/* la sesion sigue activa */
else
/* la session ha expirado */


SergioT ha escrito:

Juan T. Llibre

unread,
Aug 11, 2006, 5:16:29 AM8/11/06
to
re:

> Como puedo identificar en base a variables de session que la sesion caducó y redireccionar el
> sitio a la pagina de login?

No se puede hacer eso.

Si la sesión caducó, lo mas probable es que el usuario
esté muy lejos de tu aplicación, navegando otro web.


Juan T. Llibre, asp.net MVP
aspnetfaq.com : http://www.aspnetfaq.com/
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
===================================
"SergioT" <sta...@nospagmail.com> wrote in message
news:%23%23GvqlNv...@TK2MSFTNGP02.phx.gbl...

jb

unread,
Aug 11, 2006, 7:36:29 AM8/11/06
to
o no... es provable que se fuera a tomar un cafe, despues pulse en cualquier
link de la web/aplicación, y devuelva un error :P

¿Como se redirecciona a los usuarios a la home cuando ha finalizado la
sesión?

--


Jesús Bosch Aiguadé
www.jbmixed.blogspot.com


"Juan T. Llibre" <nomail...@nowhere.com> escribió en el mensaje
news:uX5kbbSv...@TK2MSFTNGP02.phx.gbl...

Juan T. Llibre

unread,
Aug 11, 2006, 8:36:01 AM8/11/06
to
re:

> ¿Como se redirecciona a los usuarios a la home cuando ha finalizado la sesión?

Repito : na hay garantía de que el cliente esté ahí.

re:


> se fuera a tomar un cafe, despues pulse en cualquier link de la web/aplicación

Para evitar un error, puedes verificar si la sesión existe o nó,
y requerir la información que necesites si el cliente no está registrado en la sesión.

Para eso, usa Session.IsNewSession

Si Session.IsNewSession es "True" y el cookie "ASP.NET_SessionId" está presente,
eso indica que ha habido un timeout del cliente.

El único problema es que eso no te garantiza que el cliente esté ahí.


Juan T. Llibre, asp.net MVP
aspnetfaq.com : http://www.aspnetfaq.com/
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
===================================

"jb" <nos...@nospam.com> wrote in message news:ufvlBrTv...@TK2MSFTNGP03.phx.gbl...

Jose A. Fernandez

unread,
Aug 11, 2006, 8:45:39 AM8/11/06
to
A ver si entendi lo que requieres...Tienes dos opciones
1) La primera es que cuando el usuario se va y se pierda la session tu
tendrias que preguntar en cada llamada si existe alguna variable de
session("UsuarioNombre") algo asi sino va a un Response.Redirect donde
gustes... esto se realiza en el servidor pero cuando el usuario realice
algun evento sobre tu web cuando volvio de tomar el cafe ;)
Donde?
1.a) En algun evento de la Pagina preguntas por esto
1.b) en algun control que este en todas las paginas. poro Ejemplo el
control que muestra el nombre de usaurio logeado y que tiene el boton
de "cerrar session". ya que si no tiene nombre que mostrar ... la
session ha caducado
1.c) en el Global.asax en el evento Session_Start quiere decir que
comienza una nueva session y que el usuario no esta logeado y necesita
redirigirse a una pagina particular.... (deberias ver si te conviene
esta implementacion en tu ambiente"_
1.d) Te diria en el web.config...
<authentication mode="Forms">
<forms Url="UsuarioLogin.aspx" protection="All" path="/"
timeout="20" >
</forms>
pero no tiene nada que ver la authentication o el tiempo de
authentication con el tiempo de session
Teoria de Session
http://groups.google.com.ar/group/microsoft.public.es.dotnet.aspnet/browse_thread/thread/f6f215c0f7d53cd9/


2) O tu requieres que AUTOMATICAMENTE en el cliente o sea en el
navegador si el usuario se ausenta por unos minutos se redireccione
"solito" ;) hacia una pagina diciendo SU SESSION HA FINALIZADO"??
mmm esto he visto que lo hacen mediante Javascript toman el tiempo de
session y egenran un script que se decrementa el time y cuando llega
0... redirecciona a la pagina indicada mediante js
Espero que te sirva......

Creo que lo que estas preguntando es para el punto 2 no?

_______________________
Jose A. Fernandez


jb ha escrito:

SergioT

unread,
Aug 11, 2006, 8:56:41 AM8/11/06
to
Hola


En realidad lo que quiero es mas o menos el punto 1
Osea si el tipo se va a tomar un café o a charlar con la secretaria y cuando
vuelve quiere continuar su trabajo lo que deseo es que el primer postback el
sistema se de cuenta que el usuario quiere continuar trabajando pero q su
session ya pasó a mejor vida, entonces redireccionarlo a la pagina de login.
Lo que no quiero es tener que controlar en cada pagina con un "if
session("UserFlojo")=true then redirect..... end if", me gustaria usar
algun evento de aplicacion o algo q no tenga q hacerlo en cada pagina.

GRACCIAS
Salu2
Sergio T

"Jose A. Fernandez" <ferna...@gmail.com> escribió en el mensaje
news:1155300339.9...@p79g2000cwp.googlegroups.com...

SergioT

unread,
Aug 11, 2006, 9:12:49 AM8/11/06
to
Hola otra vez yo

He usado lo que me sugieres en el webconfig y funciona muy bien, t cuento q
esa linea en el web config ya la tenia solo que el timeout estaba en 60, por
tanto me entra la sgte duda, si el timeout estaba en 60 sgnifica q mi
sistema esperaria hasta 60 minutos de inactividad, entonces deduzco que el
valor que coloque en el webconfig tiene q estar coordinado manualmente con
el timeout que tenga el servidor web cierto?

Gracias por tu ayuda
Salu2
SergioT


"Jose A. Fernandez" <ferna...@gmail.com> escribió en el mensaje
news:1155300339.9...@p79g2000cwp.googlegroups.com...

Jose A. Fernandez

unread,
Aug 11, 2006, 10:41:11 AM8/11/06
to
EXACTO.....

Un abrazo
____________________________
Jose A. Fernandez

SergioT ha escrito:

Segundo Serrano

unread,
Aug 11, 2006, 11:34:56 AM8/11/06
to
Qué tal.
 
Por lo que leo en este hilo, deduzco que todo servidor web tiene su propio timeout? muy independiente de la que tenga la aplicación web?
bueno, esto Yo no lo sabía.
 
significa esto que el valor que coloque en el webconfig no tendrá sentido (digamos poner 60 min.) si es que el servidor web tiene un timeout de 10 minutos cierto?

Cualquier ayuda para elucidar esto la agradeceré.

www.jabsoft.com
Segundo Serrano P.
Sistemas
511-2428802
 

"Jose A. Fernandez" <ferna...@gmail.com> escribió en el mensaje news:1155307270.9...@b28g2000cwb.googlegroups.com...

Jose A. Fernandez

unread,
Aug 11, 2006, 11:51:53 AM8/11/06
to
Mira esto te puede ayudar
Teoria de Session...
http://groups.google.com.ar/group/microsoft.public.es.dotnet.aspnet/browse_thread/thread/f6f215c0f7d53cd9/


___________________________
Jose A. Fernandez

Segundo Serrano ha escrito:

> Qué tal.
>
> Por lo que leo en este hilo, deduzco que todo servidor web tiene su propio timeout? muy independiente de la que tenga la aplicación web?
> bueno, esto Yo no lo sabía.
>
> significa esto que el valor que coloque en el webconfig no tendrá sentido (digamos poner 60 min.) si es que el servidor web tiene un timeout de 10 minutos cierto?
>
> Cualquier ayuda para elucidar esto la agradeceré.
>
> www.jabsoft.com
> Segundo Serrano P.
> Sistemas
> 511-2428802
>
>

> --------------------------------------------------------------------------------

Segundo Serrano

unread,
Aug 11, 2006, 12:12:28 PM8/11/06
to
Gracias José.
 
Este hilo ya lo había leído.
 
Mi pregunta iba más allá del timeout de sessionstate y del timeout de la authenticación.
Tal vez estoy confundido:
Resulta que tenemos una aplicación web en un servidor ... y el jefe en más de una oportunidad me ha dicho que respondió el telefono (o alguna otra actividad) por 10 minutos más o menos y cuando intentó continuar trabajando la sesión se había perdido.
el web.config de esa aplicación estaba en 60 minutos ambos (sessionstate y authentication).
 
Por eso yo pensaba que tal vez cada maquina servidor tiene su propio timeout configurado (que automaticamente cierra las sesiones que están inactivas durante un determinado número de minutos),,, que pueden ser menos minutos que los que dice en mi web.config no? y esto provocaría que se terminen las sesiones en menos tiempo del que dice el web.config no?
 
Tal vez estoy equivocado...tal vez no existe esa situación, ... no lo sé ...
 
Agradeceré me ayuden con su bagaje de conocimientos.
 
www.jabsoft.com
Segundo Serrano P.
Sistemas
511-2428802

"Jose A. Fernandez" <ferna...@gmail.com> escribió en el mensaje news:1155311513.0...@75g2000cwc.googlegroups.com...

Juan T. Llibre

unread,
Aug 11, 2006, 2:42:22 PM8/11/06
to
Los timeouts de sessionstate y authenticatin no son las únicas razones por las cuales
se pierden los valores de sesión ( o sea, que se reciclan los procesos de asp.net ).

Si se usa el modo InProc para mantener el estado de las sesiones,
cualquier reciclamiento del proceso de asp.net provocará la
pérdida de la sesión ( el timeout inmediato de la misma ).

Eso solo se evita si se usa State Server o SQL Server
para mantener el estado de las sesiones de asp.net.

Si se está usando InProc, se debe aumentar el umbral de reciclaje,
si lo que se quiere es que no se reciclen las aplicaciones antes de tiempo.


Juan T. Llibre, asp.net MVP
aspnetfaq.com : http://www.aspnetfaq.com/
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
===================================

"Segundo Serrano" <sserrano[arroba]jabs.com.pe> wrote in message
news:uMZmvDWv...@TK2MSFTNGP06.phx.gbl...
Gracias José.

Este hilo ya lo había leído.

Mi pregunta iba más allá del timeout de sessionstate y del timeout de la authenticación.
Tal vez estoy confundido:
Resulta que tenemos una aplicación web en un servidor ... y el jefe en más de una oportunidad me ha
dicho que respondió el telefono (o alguna otra actividad) por 10 minutos más o menos y cuando
intentó continuar trabajando la sesión se había perdido.
el web.config de esa aplicación estaba en 60 minutos ambos (sessionstate y authentication).

Por eso yo pensaba que tal vez cada maquina servidor tiene su propio timeout configurado (que
automaticamente cierra las sesiones que están inactivas durante un determinado número de minutos),,,
que pueden ser menos minutos que los que dice en mi web.config no? y esto provocaría que se terminen
las sesiones en menos tiempo del que dice el web.config no?

Tal vez estoy equivocado...tal vez no existe esa situación, ... no lo sé ...

Agradeceré me ayuden con su bagaje de conocimientos.

www.jabsoft.com
Segundo Serrano P.
Sistemas
511-2428802

--------------------------------------------------------------------------------

SergioT

unread,
Aug 11, 2006, 4:56:44 PM8/11/06
to
Hola
 
Mira yo tengo un lio similar al tuyo pero crteo q ya lo solucioné así
 
1. En el IIS  abres el arbol hasta el directorio virtual de tu app, ves propiedasdes    y dentro de la paleta Directorio virtual oprimes el boton configuracion t saldra una caja con 3 paletas, la del medio tiene el tiempo de timeout de la aplicacion,  ahi   y luego le aumentas el tiempo de vida de la app
2. Colocas en el web.config un timeout 1 minuto mas corto que el del IIS y listo!
 
facil no?
 
Salu2
Sergiot
"Segundo Serrano" <sserrano[arroba]jabs.com.pe> escribió en el mensaje news:uMZmvDWv...@TK2MSFTNGP06.phx.gbl...

Segundo Serrano

unread,
Aug 11, 2006, 6:12:56 PM8/11/06
to
Gracias a todos.

Saludos cordiales.
 
www.jabsoft.com
Segundo Serrano P.
Sistemas
511-2428802
 

"SergioT" <sta...@noSpamgmail.com> escribió en el mensaje news:uGiJbiYv...@TK2MSFTNGP05.phx.gbl...

Jose A. Fernandez

unread,
Aug 12, 2006, 12:29:48 PM8/12/06
to
Como te comenta Juan y Sergio....resumido tienes varias formas de
administrar las sessiones en tu website

Si quieres un post de
Disappearing Sessions
http://groups.google.com.ar/group/microsoft.public.dotnet.framework.aspnet/msg/13e7f116b0ffcd9e

Evitar reinicio de ASP.NET al borrar o modificar archivos
http://groups.google.com.ar/group/microsoft.public.es.dotnet.aspnet/browse_thread/thread/e9814c89a3f5598a/

(esto es copia de otro post)
Mira si falta memoria en el servidor todo lo que esta inProc se puede
eliminar para dejar un poco de "lugar"...
Te recomendaria que coloques tus sessiones pro ejemplo en un servidor
de session o incluso dentro de un sqlserver, para que no tengas
problemas cuando estes modificando archivos.

Enlace
Modos de estado de sesión
http://msdn2.microsoft.com/es-es/library/ms178586.aspx


Elemento sessionState (Esquema de configuración de ASP.NET)
http://msdn2.microsoft.com/es-es/library/h6bb9cz9.aspx


¿Por qué se reinicia mi aplicación ASP.NET?
http://support.microsoft.com/?scid=kb;es;871042


PRB: Datos de sesión se pierden cuando utiliza modo InProc de ASP.NET
de estado de sesión
http://support.microsoft.com/kb/324772/es


PRB: Las variables de sesión se pierden intermitentemente en
aplicaciones ASP.NET
http://support.microsoft.com/kb/316148/es


Espero que te sirva de ayuda o guia...
___________________________
Jose A. Fernandez

0 new messages