Pregunta

Estoy desarrollando un sitio web asp.net y no estoy usando controles de autenticación incorporado de asp.net. He creado manualmente las tablas para los usuarios para el sitio.

Lo que quiero es el siguiente

  • Después de ingresar el usuario puede acceder a las páginas (que ya está hecho)
  • Cuando el usuario pulse cerrar la sesión (usuario va a la página específica - ejemplo - default.aspx)
  • Ahora, cuando el usuario pulsa el botón "atrás" del navegador, no debe ir a la página anterior (lo que se hace en las páginas de Yahoo - Quiero poner en práctica la misma)
¿Fue útil?

Solución

Para evitar que los usuarios vean la página anterior cuando se pulsa el botón de retroceso que necesita para indicar al navegador que no hagan caché de esta página:

Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();

Se puede poner este código en todas las páginas autenticados, lo que les impide ser almacenado en caché en los navegadores de los clientes.

Otros consejos

En una página no se almacene en caché del navegador necesita para responder adecuadamente a las instrucciones de almacenamiento en caché, pero no hay ninguna garantía de que esto funcionará en todos los navegadores! (Una persona que posea el mal podría escribir su propio navegador para ignorar el almacenamiento en caché de la información, o escribir un proxy para despojar a cabo ...)

Así que no se puede conseguir que esto funcione 100% de las veces, pero siempre se van a enfrentar el problema de que un usuario puede fácilmente tomar una captura de pantalla, imprimir una página, guardar una copia en su disco, etc. . una vez que ha alimentado a una página de todos modos ...

la respuesta para usted pregunta es:

  • Cuando el usuario pulse para cerrar la sesión. (Usuario va a la página específica - ejemplo - default.aspx) se puede añadir un enlace LinkButton como SignOut y en el controlador de eventos click se puede escribir Response.Redirect ( "Default.aspx");

  • Ahora para cuando el usuario pulse botón "atrás" del navegador Debe no ir a la página anterior // añadir el siguiente código a su código detrás de la página

    override protected void OnPreRender (EventArgs e)

    {

     base.OnPreRender(e);
    string strDisAbleBackButton;
    strDisAbleBackButton = "<script language="javascript">\n";
    strDisAbleBackButton += "window.history.forward(1);\n";
    strDisAbleBackButton += "\n</script>";
    ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "clientScript", strDisAbleBackButton);
    

    }

referirse a csharpdotnetfreak.blogspot.com

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top