Sto attualmente sviluppando un piccolo sito in cui ho voluto sperimentare massivamente l'uso di ajax. Un problema che ho dovuto affrontare è il non-funzionamento dei pulsanti avanti/indietro dei browser, questo perchè con ben sappiamo ajax effettua delle chiamate asincrone che comportano l'aggiornamento parziale della pagina e non un totale ricaricamento della pagina. L'aggiornamento parziale non viene riconosciuto dai browser e crea questo "ajax-handicap". Per risolvere la cosa ho cominciato a googlare un pò e mi sono imbattuto in questo:
http://www.nikhilk.net/BackButtonSupport.aspx
http://www.nikhilk.net/UpdateControls.aspx
La configurazione del controllo è davvero molto semplice, sul sito ci sono le istruzioni necessarie, anche se ho notato che ha ancora qualche problemino con IE8, ma ho lasciato un post all'autore per verificare il problema.
Devo anche aggiungere una nota. L'assembly precompilato che viene scaricato nel pacchetto ha qualche problema a funzionare sul servizio di hosting Aruba. L'errore visualizzato è il seguente:
SecurityException: That assembly does not allow partially trusted callers.
Ho girato un pò su internet per trovare una soluzione, ho provato persino l'aspnet_merge.exe per forzare le trusted calls, ma poi mi sono ricordato che in uno dei pacchetti viene data la soluzione con i sorgenti del controllo. Mi è bastato disabilitare nella compilazione

la firma dell'assembly, e il problema si è risolto.
Per chi volesse maggiori informazioni su cosa sono le Partially Trusted Callers lascio qualche link di riferimento:
http://blogs.msdn.com/shawnfa/archive/2005/02/04/367390.aspx
http://bloggingabout.net/blogs/rick/archive/2006/04/07/11929.aspx
http://xplayn.org/cs/blogs/maurizio/archive/2006/11/02/51.aspx
http://msdn.microsoft.com/it-it/library/system.security.allowpartiallytrustedcallersattribute.aspx