ASP.NET web con c#

Tengo un linkbutton que cierra sesión y me lleva a la página de login, el problema es que le doy al navegador atrás y me lleva donde estaba, y esa página solo puede ser accecida si se tiene permiso, alguien sabe como hacer, ¿qué una vez cierre sesión le de atrás en el navegador y me deje en la página de logueo?

1 respuesta

Respuesta
1
Pon este código en tu Page_load de las páginas que no quieres que pase esto.
if (!User.Identity.IsAuthenticated)
{
Response.Redirect("~/TuPaginaDeLogueo.aspx");
}
Si no tu funciona dime que tipo de autenticación estas utilizando.
Hola, gracias por respondes
No, la solución no resulto.
Si no estoy mal cuando le doy atrás al navegador, no se carga la página de nuevo, por eso no toma esas lineas de código, en cuanto a la autenticación supongo se refiere a la del archivo web. Config, la autenticación es forms, ¿otra solución?
Gracias.
Si tienes razón al dar al botón atrás no ejecuta el code behind ya que la página queda en memoria y no la vuelve a cargar... deja checar que se puede hacer en este caso y te aviso.
Ok
Agrega este código en el page load:
Response.Expires = 0;
Response.AddHeader("pragma","no-cache");
Response.AddHeader("cache-control","private");
Response.CacheControl = "no-cache";
Con esto evitas que la página se guarde en cache y obliga al navegador a volver a cargar la página. Y ya podrás hacer la validación que te pase anteriormente o la que tu uses.
Y en tu página de logueo pon esta linea de código para Limpiar el Response
Response.Clear();
BUenas tardes, cuento en el foro, la verdad la solución que me proporciono no ha servido para lo que queríamos, pero me sirvió mucho para ayudarme a buscar la solución.
Después de revisar todos los métodos disponibles para Response encontré el que evita que al darle anterior al navegador no me cargue la página, es este:
Response.Cache.SetNoStore();
lo que si necesitamos proporcionado por el experto es esto:
if (!User.Identity.IsAuthenticated)
{
Response.Redirect("Login.aspx");
}
Ahora otra pregunta, yo tengo la página principal y desde esta puedo acceder a otras, la cuestión es que desde la principal fui a otra_pagina.aspx con el código que acabo de poner anteriormente, pero esta si me deja irme hacia atrás, ¿esto es porque esas páginas están dentro dl mismo proyecto?
Gracias.
P.D: Al experto muchísimas gracias, ha sido de mucha ayuda, por eso es que estos foros son geniales ... Muchísimas gracias!   ;)
Con las pruebas que hice en mi proyecto no me dejo ir a ninguna otra página aunque estuviera dentro del mismo proyecto y misma carpeta del proyecto.
Pon un break point en la validación IsAuthenticated de la página que se carga cuando le das para atrás en el navegador, para verificar que si este haciéndolo bien y si traiga el valor correcto.
Y dinos que paso.
Es cierto tienes toda la razón, funciona perfectamente (mi error) :)
De nuevo muchas gracias por la ayuda, cualquier duda estaré molestando o si alguien necesita algo, en lo que pueda ayudar con mucho gusto
Gracias.
Ok que bueno que ya funciono!
Solo te molestaría con pedirte que califiques (termines la pregunta)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas