
21/04/2005, 15:22
|
 | | | Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años, 3 meses Puntos: 8 | |
Bien, eso es más peliagudo, una forma sería utizando frames,pero esa opción no me gusta, asi que intentaremos no seguir por esa línea, así pues, intentaremos otra cosa.
Global.asax
AplicationStart
Application("Users") = new ArrayList()
Application("IDSesion") = new ArrayList()
SesionEnd
dim i as integer = 0
dim encontrado as boolean = False
while i<Ctype(Application("IDSesion"),ArrayList).Count
if Application("IDSesion")(i) = Session.Id
encontrado=true
else
i+=1
endif
end while
Application("IDSesion").RemoveAt(i)
Application("Users").RemoveAt(i)
En la identificación:
if Application("Users").Contains(idusuario)
...
else
Ctype(Application("Users").Add(idusuario)
Ctype(Application("IDSesion").Add(Session.id)
Session("usuario") = idusuario
end if
En el botón de cerrar Session:
try
Application("Users").Remove(Session("usuario"))
Application("IDSession").Remove(Session.id)
catch ex exception
end try
Session.Abandon()
En el onunload de cada página:
javascript:__doPostBack('ejemplo','')
y en el page_load de cada página
if isPostBack
if request.Form("__eventtarget") = "ejemplo"
Session("usuario") = -1 ' o un valor que nunca sea id de usuario
end if
else
if session("usuario") = -1
dim i as integer = 0
dim encontrado as boolean = false
while i < Application("IDSesion").Count
if Application("IDSesion")(i) = Session.id
encontrado=True
else
i+=1
end if
end while
if encontrado=true
Session("usuario") = Application("Users")(i)
end if
end if
Conclusión, rollo patatero, consumo de recursos, rollo de programar (y eso suponiendo que no me haya hecho un lio y funcione) ¿para que?
Para nada, porque si un usuario cierra la ventana, a perdido su identificación, cuando vuelva a abrirla volverá a requerir la autentificacion (a no ser que se usen cookies), mi opinion, despues de todo este rollo, acortar el tiempo de sesion y listo, así si cierra la ventana a los x minutos sesion abandonada, sesion limpia, y recuperación de recursos y nos ahorramos todo este lio, asi que te recomiendo esto último con el 1º codigo, no?? |