У меня есть форма:
@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })) {
@Html.AntiForgeryToken()
@Html.ValidationSummary()...
и действие:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl, string City)
{
}
иногда (один раз в неделю) я получаю ошибку:
Маркер антиподделки не мог быть дешифрован. Если это приложение размещается Веб-фермой или кластером, удостоверьтесь, что все машины выполняют ту же версию Веб-страниц ASP.NET и что конфигурация указывает явные ключи шифрования и проверки. AutoGenerate не может использоваться в кластере.
я пробую, добавляют к webconfig:
<machineKey validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps" />
но ошибка все еще иногда появляется
Я заметил, что эта ошибка происходит, например, когда человек произошел из одного компьютера и затем пробующий другой компьютер
Или иногда автоматический набор значений с неправильным типом данных как bool к целому числу к полю формы любым кодом jQuery также проверьте его.
Если Вы будете использовать Kubernetes и иметь больше чем одну переходную приставку для Вашего приложения, то это, скорее всего, заставит проверку запроса перестать работать, потому что переходная приставка, которая генерирует RequestValidationToken, является не обязательно переходной приставкой, которая проверит маркер при РЕГИСТРАЦИИ назад на приложение. Фиксация должна быть должна настроить Ваш nginx-контроллер или безотносительно входного ресурса, который Вы используете и говорите этому загружать баланс так, чтобы каждый клиент использовал одну переходную приставку для всей коммуникации.
Обновление: Мне удалось зафиксировать его путем добавления следующих аннотаций к моему входу:
https://kubernetes.github.io/ingress-nginx/examples/affinity/cookie /
Name Description Values
nginx.ingress.kubernetes.io/affinity Sets the affinity type string (in NGINX only cookie is possible
nginx.ingress.kubernetes.io/session-cookie-name Name of the cookie that will be used string (default to INGRESSCOOKIE)
nginx.ingress.kubernetes.io/session-cookie-hash Type of hash that will be used in cookie value sha1/md5/index