Подтвердить что ты не робот

Развертывание AntiforgeryToken Error

Я работаю над приложением ASP.NET MVC на своей локальной машине, используя Visual Studio 2012, встроенную в IISExpress. После значительного прогресса я решил сделать его доступным через локальную сеть, я создал виртуальный каталог из visual studio. Я могу войти в систему, но когда я пытаюсь зарегистрировать нового пользователя. Я получаю ошибку ниже.

Запрет на подделку не может быть расшифрован. Если это приложение организованный      веб-ферму или кластер, убедитесь, что все машины работают с одинаковой версией      Веб-страницы ASP.NET и что конфигурация указывает явно      шифрования и проверки. AutoGenerate не может использоваться в кластере.

Я создал новый машинный ключ из (ресурсов ASPNET) и поместил его в свой файл конфигурации, но он еще не работает. Может кто-нибудь предложить решение?

4b9b3361

Ответ 1

Одна вещь, которую я заметил, это то, что эта ошибка может быть вызвана наличием на странице нескольких @Html.AntiForgeryToken() фрагментов кода. У меня было 2 на моей странице, и как только я удалил второй, эта ошибка исчезла.

Ответ 2

Вы должны добавить машинный ключ, который уникален для комбинации веб-сайта/машины. Именно этот машинный ключ использует генератор токенов. Это означает, что вы должны сгенерировать машинный ключ (который вы можете сделать здесь (dead link-beware) и добавить его в свой файл Web.config на вашей машине. Вы можете найти более подробную информацию здесь: http://msdn.microsoft.com/en-us/library/ff649308.aspx

Вы также можете сделать это непосредственно из IIS: http://blogs.msdn.com/b/amb/archive/2012/07/31/easiest-way-to-generate-machinekey.aspx

Ответ 4

В моем случае это было проблемой с балансировщиком нагрузки, не поддерживающим сеанс для сайта.

Ответ 5

У меня была страница, которая использовала частичный вид. Оба из них содержали @Html.AntiForgeryToken(), и при удалении с Html.AntiForgeryToken() с частичной страницы это сработало.