Retroceder   Foros del Web > Programación para sitios web > ASP Clásico

Respuesta
 
Herramientas Desplegado
Antiguo 25-ene-2005, 17:56   #1 (permalink)
debspain está en el buen camino
 
Fecha de Ingreso: noviembre-2002
Mensajes: 195
Problema con caducidad de sesión

Hola!
Llevo ya unas cuentas horas con un problemilla,que, aunque parecía facil, no he conseguido solucionar.. no se si es que me estoy olvidando de algo o qué, el caso es que no funciona.

Se trata de lo siguiente:

En el archivo global.asa, tengo la siguiente subrutina:

Sub session_onStart()
session("SesionExpirada") = "0"
session.timeout = 4
end sub

sub session_onEnd()
Session("SesionExpirada") = ""
end sub

Justo en el momento de abrir una de las páginas del directorio virtual, compruebo que los valores de las variables SesionExpirada y el del timeout sean los que he puesto en Sub Session_OnStart(), y efectivamente son los valores correctos.
Ahora bien, desde esa misma página tengo un link a otra. Esta ultima se mostrará solo si la variable Session("SesionExpirada") sea "0" (la sesion no está caducada), y si no nos redireccionará a otra página que solo informa que la sesion está caducada.

La cuestion es que por mucho que indique el session.timeout, y despues de haber dejado el tiempo suficiente para que la sesion caduque, session("sesionexpirada") sigue teniendo valor 0 cuando deberia tener valor "", puesto que ya ha pasado por Session_onEnd, no?
Esto es lo que no entiendo, puesto que el código está bien y no me da ningun error, per no consigo que funcione.
A ver si alguien pudiera ayudarme..... gracias!!!!!

Última edición por debspain; 25-ene-2005 a las 17:58.
debspain está desconectado   Responder Citando
Antiguo 26-ene-2005, 02:07   #2 (permalink)
Iri
Iri está en el buen camino
 
Avatar de Iri
 
Fecha de Ingreso: septiembre-2003
Ubicación: Madrid
Mensajes: 54
Pues no se,doy por sentado que no tienes frames, no? En el session_onend(), en vez de poner Session("SesionExpirada") = "", pon Session("SesionExpirada") .abandom().
Tambien revisa el IISS para ver cuanto tiempo tienes de sesión que sera de 20 min (aunque en realidad debería mandar el timeout). Siento no ser de mas ayuda, suerte.
__________________
irina.exe
Iri está desconectado   Responder Citando
Antiguo 26-ene-2005, 06:51   #3 (permalink)
debspain está en el buen camino
 
Fecha de Ingreso: noviembre-2002
Mensajes: 195
hola! gracias por contestar Iri!
Pues no, no tengo ni un frame, y me parece muy extraño que a pesar de darle un valor al session.timeout, no me haga ni caso....
Si alguien pudiera ayudarme lo agradecería mucho!! gracias otra vez!
debspain está desconectado   Responder Citando
Antiguo 26-ene-2005, 16:06   #4 (permalink)
debspain está en el buen camino
 
Fecha de Ingreso: noviembre-2002
Mensajes: 195
nadie tiene idea de lo que puede estar pasando?? graciass
debspain está desconectado   Responder Citando
Antiguo 26-ene-2005, 16:27   #5 (permalink)
masterboy6666 está en el buen camino
 
Fecha de Ingreso: mayo-2004
Mensajes: 183
Solo una sugerencia, por que no colocas un boton de logoff, y ese metodo invoque una asp, que haga lo siguiente.

session.abandon 'con esto borras todas tus variables.
y luego lo rediriges a la pagina de logon.

Aqui asi le hacemos.
masterboy6666 está desconectado   Responder Citando
Antiguo 26-ene-2005, 16:39   #6 (permalink)
debspain está en el buen camino
 
Fecha de Ingreso: noviembre-2002
Mensajes: 195
holaa!
pues es ya tengo un boton de logOut, y precisamente en la empresa me piden hacer esto otro porque queremos que cuando la sesion haya caducado, todas las paginas a las que entren les dirija a una pagina de : "Su sesion ha caducado. Vuelva a iniciar sesion".
Y no se hacerlo de otra manera... pero asi no sale.

He leido por internet varios post de gente que le pasa lo mismo que a mi, que aunque tengan indicado el sesion.timeout, la sesion no caduca nunca... parece que no pase por el Sesion_onEnd(), aunque si lo hace por el Session_onstart().... y no consigo entender por qué...

¿Conoces/is alguna forma alternativa para hacer esto?
Gracias!
debspain está desconectado   Responder Citando
Antiguo 26-ene-2005, 16:57   #7 (permalink)
masterboy6666 está en el buen camino
 
Fecha de Ingreso: mayo-2004
Mensajes: 183
Mira en todas nuestras paginas colocamos esta sentencia al principio(en tu caso)

if Session("SesionExpirada") = "" then
Response.Redirect("../ErrPage/Mensaje.asp?ErrMessage=Session No inicializada or Expirada.")
End If

Con esto consigues que nadie entre a las paginas sin primero estar logeado.

en la pagina mensaje.asp, colocamos que direccione a la pagina de logon.asp

Lo que no entiendo es por que no se limpia esa variable, si aqui hacemos eso mismo aqui, y si funciona.

Última edición por masterboy6666; 26-ene-2005 a las 16:59.
masterboy6666 está desconectado   Responder Citando
Antiguo 26-ene-2005, 16:58   #8 (permalink)
masterboy6666 está en el buen camino
 
Fecha de Ingreso: mayo-2004
Mensajes: 183
Otra cosa, en el iis, creaste su aplicacion?????
masterboy6666 está desconectado   Responder Citando
Antiguo 27-ene-2005, 03:02   #9 (permalink)
cyberluisin está en el buen camino
 
Fecha de Ingreso: enero-2005
Mensajes: 5
Hola a todos,

Yo tuve ese problema con el servidor brinkster, al cabo de un momento se me expiraban las sesiones y todo estaba bien programado. La unica solucion que tendras sera pasar en todas las paginas una cadena que por ejemplo se llame ssid, la pasas como querystring. Esa ssid al hacer el login, en la base de datos, has almacenado en el campo de ese usuario un numero aleatorio de 20 o 30 digitos, mejor combinar con letras y numeros. Entonces pasas esa cadena por todas las paginas y en caso de desconectarse, con un if, haces una comprobacion en la bd, y reconectas al usuario que tenga esa cadena de 30 digitos. Es lo peor si tenias toda la web hecha ya, pero yo lo tengo cvlaro, la siguiente que haga, sera toda con sesiones pasadas por cadena.

Espero haberte ayudado,

Un saludo y suerte!!
cyberluisin está desconectado   Responder Citando
Antiguo 27-ene-2005, 04:46   #10 (permalink)
Luchi ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2004
Ubicación: argentina
Mensajes: 14
Parpadear

Hola , yo tambien estoy teniendo problemas con sessio_onend.Necesito que cuando termina la sesion se ejecuten acciones y probe poner en una pagina.asp session.abandon, la cual sea llamada por otra. El tema es que algo de lo que se encuentra en session_onend funciona pero otras cosas no. Les paso el codigo haber si alguien me puede dar una mano:

Les explico algo mas: necesito guardar cuando termina la sesion el tiempo que duro la misma, pero el problema al llamar a guardar.asp en session_onend no funciona,Como podria hacer para llamar guardar.asp el usuario abandona la session????
aca les paso el codigo para que lo miren, desde ya muchas gracias

<script language="vbscript" runat="server">

sub Application_OnStart()
application ("conectados") = 0
end sub


sub Session_OnStart()

application.lock
application ("conectados") = application ("conectados") + 1
application.unlock

Session("hora_inicial")= Time

end sub


sub Session_OnEnd()

application.lock
application ("conectados") = application ("conectados") - 1
application.unlock

Session("hora_actual")= Time

pagina="guardar.asp" 'Esto no funciona
response.redirect pagina 'Esto no funciona



end sub

</SCRIPT>

En guardar.asp resto Session("hora_actual")= Time - Session("hora_inicial")= Time y lo almaceno en la base de datos.
Luchi está desconectado   Responder Citando
Antiguo 27-ene-2005, 06:29   #11 (permalink)
debspain está en el buen camino
 
Fecha de Ingreso: noviembre-2002
Mensajes: 195
hola!
gracias por contestar!

A ver, en primer lugar, si cree un directorio virtual para la aplicacion, con su global.asa. Respecto a vuestras respuestas, resulta que el caso es diferente, es decir, el problema no es provocar el abandono de sesión del usuario con un session.abandon, sinó que simplemente quiero detectar que la sesion ha expirado, y el gran problema es que mi sesion nunca expira, por mas que le puse un session.timeout, etc, etc.. No sesi es que estça utilizando un valor predeterminado de 20 minutos o que.. pero es que por mas que lo pruebe, no expira nunca...

Si se os ocurre algo de lo que puede provocar esto plis que lo diga.....
Gracias otra vez!
debspain está desconectado   Responder Citando
Antiguo 11-jul-2005, 10:12   #12 (permalink)
wilby está en el buen camino
 
Fecha de Ingreso: mayo-2004
Mensajes: 45
Una cosa que me funciona es al comienzo de tus paginas asp:

<% Response.Expires = 4 %>

O el valor en minutos que desees. Si pones "-1" la sesión expira al valor por defecto configurado en el IIS, pero de esta forma puedes hacer que la pagina caduque en el tiempo deseado.


Sino prueba a poner lo que tenías en el ASA

<% Session.Timeout = 4 %>

pero en el encabezado de las paginas ASP, en lugar del global.asa

__________________
Et lux in tenebris lucet...
s.f.wil
wilby está desconectado   Responder Citando
Antiguo 31-jul-2005, 08:36   #13 (permalink)
davaprogramers ha deshabilitado el karma
 
Fecha de Ingreso: julio-2005
Mensajes: 4
tengo este codigo, espero les ayude....

..........................
<%

IF session("caja") <> "" AND session("hoy") <> "" THEN
on error resume next
Set conn= Server.CreateObject("adodb.connection")
....aqui va otro codigo despues del if----

ELSE
RESPONSE.WRITE " <p align=" & chr(34) & "center" & chr(34) & "><b><font color=" & chr(34) & "#800080" & chr(34) & " size=" & chr(34) & "5" & chr(34) & ">LA SESION <br> "
RESPONSE.WRITE " HA CADUCADO <br> "
RESPONSE.WRITE " POR FAVOR, CIERRE <br> "
RESPONSE.WRITE " LA VENTANA ACTUAL <br> "
RESPONSE.WRITE " E INGRESE NUEVAMENTE</font></b></p> "
END IF
%>

si mi sesion caduca, me pide reingresar... en el IIS le doy el tiempo de caducidad de la sesion.
davaprogramers está desconectado   Responder Citando
Antiguo 31-jul-2005, 08:38   #14 (permalink)
davaprogramers ha deshabilitado el karma
 
Fecha de Ingreso: julio-2005
Mensajes: 4
obiamente
IF session("caja") <> "" AND session("hoy") <> "" THEN
caja y hoy vienen de otras paginas moviendo valores, antes de grabar, verifico que no haya caducado la sesion, si no caduca manipulo la db, si caduca sale de la pàgina.
davaprogramers está desconectado   Responder Citando
Antiguo 24-abr-2008, 17:04   #15 (permalink)
jagr ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 1
Re: Problema con caducidad de sesión

Hola yo tengo una duda no se como usar la session.
Lo que quiero hacer es crear la session y en un tiempo determinado que me diga que se caduco
jagr está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 16:10.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93