У меня есть сообщение формы, которое постоянно дает мне токенную ошибку.
Вот моя форма:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.EditorFor(m => m.Email)
@Html.EditorFor(m => m.Birthday)
<p>
<input type="submit" id="Go" value="Go" />
</p>
}
Вот мой метод действия:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Join(JoinViewModel model)
{
//a bunch of stuff here but it doesn't matter because it not making it here
}
Вот машинаKey в файле web.config:
<system.web>
<machineKey validationKey="mykey" decryptionKey="myotherkey" validation="SHA1" decryption="AES" />
</system.web>
И вот ошибка, которую я получаю:
A required anti-forgery token was not supplied or was invalid.
Я читал, что изменение пользователей в HttpContext приведет к аннулированию токена, но этого здесь не происходит. HttpGet в моем действии Join просто возвращает представление:
[HttpGet]
public ActionResult Join()
{
return this.View();
}
Поэтому я не уверен, что происходит. Я искал вокруг, и все, кажется, предполагает, что это либо изменение машинного ключа (цикл приложения), либо изменение пользователя/сессии.
Что еще может быть? Как устранить эту проблему?