Токен-маркер анти-подделки и маркер поля формы не совпадают с MVC 4
Я использую модуль входа по умолчанию в ASP.NET MVC 4. Я не изменял код в приложении по умолчанию, и я размещал его на общем сервере.
После входа в систему, используя страницу входа по умолчанию. Я долгое время оставался браузером. Затем, очевидно, приложение перенаправляется на страницу входа, когда я пытаюсь выполнить любое действие controllerа с атрибутом [Authorize]
.
Затем я снова пытаюсь войти в систему, и он дает ошибку, когда я нажимаю кнопку входа.
- Обновление Windows вызвало прекращение работы MVC3 и MVC4
- Razor Views не видит System.Web.Mvc.HtmlHelper
- Как вызвать другой controller Действие С controllerа в Mvc
- Почему мой пакет CSS не работает с загруженным приложением MVC4 с помощью bin?
- MVC 4 как правильно передать данные из controllerа для просмотра
The anti-forgery cookie token and form field token do not match.
Вход в систему
// POST: /Account/Login [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Login(LoginModel model, string returnUrl) { if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) { return RedirectToLocal(returnUrl); } // If we got this far, something failed, redisplay form ModelState.AddModelError("", "The user name or password provided is incorrect."); return View(model); }
- Правильная сериализация JSON в MVC 4
- Использование Cookie в Asp.Net Mvc 4
- Как создать пользовательские дополнительные поля в UserProfile в MVC4
- Получение информации о пользователе Active Directory с проверкой подлинности Windows в MVC 4
- Entity Framework создает множественное имя таблицы, но представление ожидает уникальное имя таблицы?
- Есть ли веские основания использовать FormCollection вместо ViewModel?
- Шаблон редактора ASP.NET MVC 4 для базовых типов
- Добавление другого «питомца» в модельную форму
Я решил проблему, явно добавив машинный ключ в web.config.
Примечание. По соображениям безопасности не используйте этот ключ. Создайте один из https://support.microsoft.com/en-us/kb/2915218#AppendixA . Не используйте онлайн-данные, подробности, http://blogs.msdn.com/b/webdev/archive/2014/05/07/asp-net-4-5-2-and-enableviewstatemac.aspx
Вот сайт, который генерирует уникальные ключи машины:
Другая причина для этой ошибки заключается в том, что вы переходите между областями [Authorize], которые не кэшируются браузером (это было бы сделано специально, чтобы заблокировать пользователей от просмотра защищенного контента при их выходе из системы и, например, с помощью кнопки «Назад») ).
Если это так, вы можете сделать свои действия не кэшированными, поэтому, если кто-то нажал кнопку «Назад» и попал в форму с помощью @ Html.AntiForgeryToken (), токен не будет кэшироваться ранее.
См. Это сообщение о том, как добавить [NoCache] ActionFilterAttribute: как обрабатывать отправку формы ASP.NET MVC Back button?
Вот сайт, который генерирует уникальные ключи Machnie Keys http://www.developerfusion.com/tools/generatemachinekey/
убедитесь, что вы поместили @ Html.AntiForgeryToken () в форму вашей страницы
У меня была эта проблема в течение длительного времени и предполагалось, что с ASP.NET что-то не так.
На самом деле это был сервер. Тогда я был с WinHost, и у них есть ограничение на 200 МБ памяти. Как только у меня было ~ 20 пользователей одновременно, мой лимит был достигнут. На этом этапе все были выведены из системы и дали эти проблемы.
Для меня это было вызвано отправкой формы с помощью тега кнопки. Изменение этого параметра на тег отправки сообщения устраняет проблему.