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

Accesos a pagina restringida con boton "Atras"

232 views
Skip to first unread message

Oscar

unread,
Dec 18, 2006, 6:27:12 PM12/18/06
to
Hola a todos,

estoy desarrollando mi aplicación web, en la que tengo definidos en una
base de datos SQLServer los usuarios que pueden acceder.

Estos usuarios se logean. Pero me he dado cuenta del siguiente problema:

Una vez que el usuario se ha logeado, pulsa el boton de cerrar sesion,
entonces yo ejecuto el siguiente código:

session.abandon
session.clear.

y van a la pagina de login.

Pero si yo pulso el boton atras del navegador, vuelven a ver la página
anterior con todos los datos de mi usuario!!!

He intentado capturar los eventos de las pagina como (pre_init,
pre_load, pre_render, etc...) pero ninguna me captura un evento...

como puedo solucionar esto???

Muchas gracias a todos.

Óscar.

Jordi Maycas

unread,
Dec 19, 2006, 5:28:22 AM12/19/06
to
cuidadin y mucho cuidadin con una cosa... si en el usuario o password o
campos que tengas que luego se validan con el sql server o cualquier otra,
pones en vez de un usuario o password, algo que el sgbbdd entienda como
sentencia
sql..................................................................

mirate las operaciones logicas, y estudia el resultado de la operacion and y
or... ves por donde voy?

el resultado de una operacion (usuario/password correctos) puede ser verdad
si......... (sin tener que poner usuario / password).


"Oscar" <nov...@novale.com> escribió en el mensaje
news:OFhRNwvI...@TK2MSFTNGP04.phx.gbl...

Jose A. Fernandez

unread,
Dec 19, 2006, 6:24:47 AM12/19/06
to
Hola Oscar
A parte de lo que te comenta Jordi, agreggo algo mas....
Cuando el usaurio da el CLICK con el boton ATRAS del navegador la
mayoria de estos navegadores no realizan un postback al servidor, es
decir no puedes DETECTARLO en el servidor pues esta utilizando el cache
del mismo navegador o sea una "fotografia" por asi llamarlo de la
pagina antes visitada
...y que HACEMOS?
Bueno la primera opcion es no desesperarse ;).... y luego de unas vasos
de cerveza aprendes a convivier con el bendito boton ATRAS del
navegador
Es decir, en la web necesitaras hacer tu pagina con esta posibilidad de
accion del usuario.
De que se puede implemenrtar muchas formas de "escaparse"? si!, pero
como te decia
tanto con js (ir siempre para adelante) como de cache del navegador
(pero esto hasta depende del nageador que el cliente este usando,
incluso en el mismo IE con algunas versiones de antaño.. de la epoca
del ASP clasico)

Mas opciones (de escaparse) tienes aqui:
Cómo conservar sólo el estado más reciente de página Web
en la carpeta de historial de explorador Web
------------------------------------------------------------------------
http://support.microsoft.com/kb/913721
Para impedir a un usuario volver a páginas Web anteriormente
visitadas, debe evitar páginas Web visitadas de agregarse a la carpeta
historial de explorador Web. Además debe evitar devoluciones de datos
generadas por controles de servidor ASP.NET al agregarse a la carpeta
historial de explorador Web. Si el estado más reciente de página Web
se conserva y si ninguna página Web está en la carpeta de historial
de explorador Web, Atrás no está disponible.

De diseño, no puede modificar la carpeta de historial de explorador
Web mediante programación. Para resolver esta restricción, utilice
uno de los métodos siguientes.
Método 1: Deshabilite el caché de explorador Web y utilice variables
de sesión
Método 2: Utilice un marco ocultado en una página Web
Método 3: Utilice el método location.replace
Método 4: Utilice el método window.history.forward
Método 5: Modifique la lógica de aplicación Web

Aqui tienes otro post para deshabilitar el CACHE del Explorador
http://groups.google.com.ar/group/microsoft.public.es.dotnet.aspnet/browse_thread/thread/8c44273c6da93da2/


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

Jordi Maycas ha escrito:

AngarZafir

unread,
Dec 21, 2006, 11:24:50 AM12/21/06
to

Hola, se que es un poco tarde pero queria dejar la solucion por la que
opte. coloque el en pag_load la sigueinte expresion

Response.Cache.SetCacheability(HttpCacheability.NoCache)

La cual si le doy al boton atras simplemente me dice que la pagina ha
caducado. No es muy elegante pero sirve para mis fines. Esta fue mi
solucion! me gustaria ver cual fue la que usaste al final...

the4man

unread,
Dec 21, 2006, 12:24:34 PM12/21/06
to
Pronostico multiples llamadas de los usuarios preguntando "¿por qué
la página caduca tanto?".

Permiteme un consejo: estas intentando luchar contra el comportamiento
normal de un usuario en la web, y eso es antiusabilidad. ¿Que problema
hay si el usuario al darle a "atras" ve los datos? Es lo que se hace
normalmente. Mientras no pueda hacer ninguna acción con ellos si la
sesión ha expirado no debería de ser un problema. Vamos, no hay nada
que yo odie mas que darle al botón de atras y que no me deje ver la
página. ¡¡¡¡Es que lo odioooooooooooooo!!!

Y con respecto a lo que has hecho, seria mas conveniente de cara al
mantenimiento crear una pagina base que haga eso y luego hacer que
todas las páginas hereden de ella.

Saludos!


AngarZafir ha escrito:

AngarZafir

unread,
Dec 21, 2006, 12:53:34 PM12/21/06
to
Hola the4man, he leido tu comentario y solo te lo devuelvo con otro
consejo.

Te agradecería que la proxima vez que vayas a corregir lo hagas en
modo de sugerencia y no como si se hubiese hecho un gran pecado. Me
parecio bastante desagradable la forma que me has dado tu opinión y
esta bien, como dije, es POCO elegante pero me sirve porque primero,
hablo de una web en intranet y segundo, lo uso cuando tengo que estar
enviando datos de un formulario a otro y darle al boton atras significa
perder la variable session por la cual la otra pagina tambien se
enredaria. De todas maneras aun ando buscando una solucion mucho mejor.

Es solo una sugerencia, y espero que la tomes de la mejor manera. Soy
nueva en esto y abierta a oir SUGERENCIA, no REGAÑOS...

Gracias...

Jose A. Fernandez

unread,
Dec 22, 2006, 12:50:04 AM12/22/06
to
Bueno tampoco es que escribimos con "PASION" jeje
AngarZafir creeo que the4man empieza bien su post .. que no creo que
quiera malainterpretacion de nadie


Pero bueno cuando necesite algo parecido solo me dedique a colocar con
JS window.history.foward, pero es un caso muy particular

Comento algo sonbre la pagina caducada....(que no nos gusta a nadie) y
menos como dice
the4man a usuarios que estan acostumbrados que en todo momento ver ALGO
en positivo, es decir hasta los mensajes de un website o de cualquier
aplicacoon debe estar en positivo por ejemplo:
NO HAGA ESTO. o ERROR AAQUI...
puede ser...
El campo NOMBRE es requerido. Verifique
Es absurdo pero doy idea de la palabra "usabilidad" que no es solamente
VALIDAR contra una web que mi codigo es esta compatible con el nivel
1.1 de usability jee
Bueno al margen de esto, la mayoria de las corporaciones estan
navegando detras de sitios protegidos con firewall y/o aceledadores de
internet (los benditos proxys) y aqui tenemmos un pequeño gran
problema con la caducidad de estas paginas, necesitamos enviarle al
proxy que nuestra pagina caduca en x segundos para que no muestre ALGO
IRREAL....y sucede lo queno queremos:
- una veces una "fotografia" no en tiempo real de mi pagina
(imaginense un banco que miramos cuenta y que no refleje lo que esta
pasando por que mi proxy no fue al servidor a buscar lo que debia sino
que me arrojo la pagina en su cache"
A veces que los mismo administradores configuran mal la cache de
esos proxy poniendo por ejemplo una hora en algunos DIARIOS ONLINE..
(pero bueno de esos hay pocos je)
O mas aun en sitios de INTRANET donde todos los clientes salen por
proxy tenemos a veces los mayores dolores de cabeza , ya que no se
configura los navegadores para que cuando sea INTERNO la peticion o a
pagiuns adecuadas no salga por estos benditos proxys

- A veces la pagina como no fue al servidor caduca y aca no hay
programacion que te salve porque a veces no nos hace caso a nuestros
queridos codigos de CACHE je

Pero son simples acotaciones que se me vienen a la memoria en base a
los terribles problemas que tenemos a veces en las llamadas que comenta
the4man :)

Saludos a todos
____________________
Jose A. Fernandez

AngarZafir ha escrito:

the4man

unread,
Dec 22, 2006, 5:36:46 AM12/22/06
to
> Te agradecería que la proxima vez que vayas a corregir lo hagas en
> modo de sugerencia y no como si se hubiese hecho un gran pecado. Me
> parecio bastante desagradable la forma que me has dado tu opinión y
> esta bien, como dije, es POCO elegante pero me sirve porque primero,
> hablo de una web en intranet y segundo, lo uso cuando tengo que estar
> enviando datos de un formulario a otro y darle al boton atras significa
> perder la variable session por la cual la otra pagina tambien se
> enredaria. De todas maneras aun ando buscando una solucion mucho mejor.
>
> Es solo una sugerencia, y espero que la tomes de la mejor manera. Soy
> nueva en esto y abierta a oir SUGERENCIA, no REGAÑOS...

Siento decirte que no se me ocurre una mejor manera de expresar lo que
te decia en mi anterior mensaje, que por un lado no era mas que un
consejo (no trates de impedir la vuelta atras) y una sugerencia de
implementación (usar la herencia para que te ahorres trabajo).

Si mi mensaje te ha parecido desagradable lo siento, pero no se decirlo
mejor.

Saludos!

Oscar

unread,
Dec 23, 2006, 3:32:09 PM12/23/06
to
Muchísimas gracias a todos por vuestros consejos, los voy a poner en
práctica en cuanto me dejen de caer todo tipo de marrones por navidad...
por favor, donde queda el espiritu navideño de amigos y familia!! :D

siento haber creado polémica.

Y aprovecho para Felicitar la Navida a todos los foreros del ASP

Feliz Navidad y Prospero Año nuevo...

Nos seguiremos viendo por aquí... (si no me echan claro!! )

Saludos a todos.

0 new messages