У меня есть сообщение в форме, в котором постоянно выдается ошибка с токеном против подделки.
Вот моя форма:
@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's not making it here
}
Вот ключ машины в 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();
}
Так что я не уверен, что происходит. Я искал вокруг, и все, кажется, предполагает, что это либо смена машинного ключа (циклы приложения), либо смена пользователя / сеанса.
Что еще может происходить? Как я могу устранить это?