Abbiamo un'applicazione ASP.NET MVC 2 (.NET 4) in esecuzione su Windows Azure (ultima versione OS 2.x) con due istanze di ruolo web.Perché HttpAntiForgeryException si verifica in modo casuale anche con una chiave macchina statica?
Utilizziamo il token anti-contraffazione fornito da MVC per tutte le richieste POST e abbiamo impostato un codice macchina statico in web.config, quindi tutto funziona su più macchine e attraverso riavvii. Il 99,9% dei casi funziona perfettamente.
Ogni tanto, tuttavia, registriamo una HttpAntiForgeryException, con messaggio "Un token anti-contraffazione richiesto non è stato fornito o non era valido."
So che il problema potrebbe essere che i cookie non sono consentiti nel browser, ma abbiamo verificato che i cookie sono abilitati e vengono inviati avanti e indietro correttamente.
L'errore si verifica con una varietà di browser e ovviamente causa problemi agli utenti perché devono ripetere l'operazione o possono perdere alcuni dati. Basti dire che non siamo stati in grado di riprodurre il problema localmente, ma si verifica solo su Windows Azure.
Perché sta succedendo? Come possiamo evitarlo?
Ho controllato con i ragazzi della sicurezza (sul team MVC) e probabilmente Darin ha ragione - il nome utente probabilmente è cambiato. – RickAndMSFT