Mamy aplikację ASP.NET MVC 2 (.NET 4) działającą w systemie Windows Azure (najnowsza wersja systemu operacyjnego 2.x) z dwiema instancjami roli internetowej.Dlaczego wyjątek HttpAntiForgeryException występuje losowo, nawet w przypadku statycznego klucza komputera?
Używamy tokena przeciw fałszowaniu dostarczonego przez MVC dla wszystkich żądań POST, a ustawiliśmy Statyczny klucz maszynowy w web.config, więc wszystko działa na wielu komputerach i na różnych restartach. 99,9% przypadków działa idealnie.
Co jakiś czas rejestrujemy wyjątek HttpAntiForgeryException z komunikatem "Wymagany token zabezpieczający przed fałszowaniem nie został dostarczony lub był niepoprawny."
Wiem, że problem może polegać na tym, że pliki cookie nie są dozwolone w przeglądarce, ale sprawdziliśmy, że pliki cookie są włączone i poprawnie wysyłane.
Błąd występuje w różnych przeglądarkach i oczywiście powoduje problemy dla użytkowników, ponieważ muszą oni powtórzyć operację lub mogą utracić niektóre dane. Wystarczy powiedzieć, że nie byliśmy w stanie odtworzyć problemu lokalnie, ale dzieje się tak tylko na Windows Azure.
Dlaczego tak się dzieje? Jak możemy tego uniknąć?
Sprawdziłem z ochroniarzami (w zespole MVC), a Darin prawdopodobnie ma rację - nazwa użytkownika prawdopodobnie się zmieniła. – RickAndMSFT