Asp.Net: disabilitare l'azione del tasto Back del browser



Erano un paio di giorni che io e il buon Gianpiero ci arrovellavamo per risolvere un problema apparentemente semplice: con asp.net e i suoi 'postback' l'uso da parte dell'utente del tasto back in alcuni casi risulta fatale al corretto funzionamento della web application.

Beh...io mi ero già arrampicato su una soluzione molto 'spaghetti-code', con un controllo su variabili di sessione e viewstate, quando il guru si avvicina con un sorriso che dice 'ho risolto!'.

Ebbene, la soluzione era più semplice del previsto, senza nemmeno una riga di codice 'server-side':
<head runat=“server”>
<meta http-equiv=“Expires” CONTENT=“0″>
</meta><meta http-equiv=“Cache-Control” CONTENT=“no-cache”>
</meta><meta http-equiv=“Pragma” CONTENT=“no-cache”>
<script>
window.history.forward(1);
</script>
</meta></head>
In pratica, a ogni caricamento della pagina si viene 'forwardati' alla prima pagina della history: alla pressione dell'eventuale tasto 'back', si ritorna comiunque alla pagina dove ci si trovava, con la differenza che essendo tutte le informazioni memorizzate dal framework in variabili di sessione e viewstate i dati inseriti non vengono persi.

[via]

Published: January 17 2008

  • category: