Il problema è: quale sistema utilizzare per mettere in cache delle pagine multilingua?
Premessa: il sito multilingua (in .net 2.0) esiste già. Io devo implementare il caching.

Esiste un pulsante che se attivato abilita una variabile di sessione (Session["Language"])
opportunamente testata che da il corretto rendering delle pagine a seconda della lingua scelta.

La problematica è dovuta al fatto che abilitando l'OutPutCache per 60 secondi a tutti gli utenti
viene servita la stessa pagina fino allo scadere della cache: se un utente che arriva 10 secondi prima di me e seleziona la lingua inglese io vedrò le stesse pagine in inglese. Ma se nel frattempo io imposto la lingua italiana cliccando sull'apposito pulsante l'altro utente vedrà le pagine in cache in italiano.
Questo perché io per invalidare la cache vado a testare una variabile "centralizzata" che è la session["Language"].
Se cambia tale variabile la cache viene invalidata. Tutto ok se non fosse che la session può essere diversa per ogni utente mentre le pagine recuperate dalla cache e servite dal server sono uguali per tutti gli utenti. Dovrei fare in modo che venissero aggiunte in cache diverse versioni della stessa pagina, una per ogni lingua selezionata. Non posso usare VaryByParam perchè mi è impossibile testare la querystring o i valori inviati tramite post dato che il sito è già esistente e come ho detto utilizza la sessione e non altri parametri. E’ possibile testare una variabile di sessione in VaryByParam? Oppure avete qualche suggerimento per risolvere il problema?

Grazie