lunes, 13 de junio de 2011

Deshabilitar el botón "atrás" con ASP.NET

Hola, en esta entrada les explicaré un pequeño "truco" con el que tuve que lidiar en una aplicación en la que estuve trabajando.

El problema: Es una aplicación en la que se tenía que prevenir que el usuario regrese al formulario anterior. Un ejemplo más claro de esto es los registros por pasos o en todo caso las evaluaciones.



Para esto adelantamos que NO se puede bloquear los botones de un navegador desde el código ASP.NET; se imaginan si se pudieran modificar los botones de su navegador desde el código?, sería completametne fastidioso si se pudiera, imagínense la cantidad de código malicioso que se construiría sólo por diversión y modificaciones como esas.

Lo que debemos hacer y por eso le llamo truco es encontrar alguna forma de desactivar la caché de la máquina, para que así no tenga "memoria" del formulario visitado anteriormente. Claro y esto lo podemos conseguir fácilmente con el uso del Response.

Debemos tener muy en cuenta la versión del Framework que estamos utilizando ya que hubo un cambio en la Clase HttpCachePolicy de la versión 1.X a la versión 2 en adelante del Framework.

En la versión más actual el código es el siguiente:

Response.Cache.SetCacheability(HttpCacheability.NoCache);

Response.Cache.SetExpires(DateTime.Now); 

y en la versión 1.X sería:

   Response.CacheControl = "no-cache";

   Response.AddHeader("Pragma","no-cache");

   Response.Expires = -1;

Espero les sea útil esto, tanto como lo fue para mí.

3 comentarios: