0

У меня есть страница MVC с двумя частичными видами A и B. Когда я отправляю частичный вид B, ТОЛЬКО в первый раз, когда я получаю эту ошибку.MVC antiforgerytoken partial View

Токен-маркер антивируса и маркер поля формы не совпадают.

После того, как первый раз представление прекрасно работает. Я добавил [ValidateAntiForgeryToken] на кодовой странице и добавил частичный снимок @Html.AntiForgeryToken().

Когда я удаляю частичный вид A со страницы, B работает без каких-либо ошибок.

Любое предложение действительно поможет.

+0

Не могли бы вы опубликовать соответствующий раздел кода? Это может помочь: http://stackoverflow.com/questions/18097401/the-anti-forgery-cookie-token-and-form-field-token-do-not-match-in-mvc-4 –

ответ

3

Если у вас есть [ValidateAntiForgeryToken] атрибут структура делает следующий

  1. Проверьте, если входящий запрос имеет печенье под названием __RequestVerificationToken
  2. Проверьте входящий запрос имеет Request.Form запись под названием __RequestVerificationToken
  3. Проверьте, печенье и Request.Form значения соответствуют

Из-за ab ove, на одной странице может быть только один действительный токен AntiForgery.

Подробности проверить http://blog.stevensanderson.com/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/