Как мне разрешить исключение AntiForgeryToken

Я хочу войти с bootbox.dialog, Я публикую HTML.Form в следующем синтаксисе:

 $.get("/account/ajaxlogin", function (data2) {
 bootbox.dialog({
      title: '<h4 style="color:white;">Login</h4>',
      message: data2,
      buttons: {
      "success": {
      "label": "Login",
      "className": "btn-large btn-success",
      "callback": function (e) {
       var flag = false;
        $.ajax({
          url: "/account/login",
          data:$("form").serialize(),
          type: "POST",
          success: function (responseData) {}});

Когда я нажимаю кнопку входа, я получаю AntiForgeryToken исключение

The anti-forgery token could not be decrypted. If this application is hosted by a Web Farm or cluster, ensure that all machines are running the same version of ASP.NET Web Pages and that the &lt;machineKey&gt; configuration specifies explicit encryption and validation keys. AutoGenerate cannot be used in a cluster.

Я добавляю ручное определение машинного ключа в ваш web.config

<machineKey validationKey="40146620D52D81D5F0880209AC6F0C62D80686A5D1CC01E3AB1F75FA92B8DC775B0F97745973D9B69373111D6E7C5F4417B1212D7DD947BAE2AC4E2B10E8DECA" decryptionKey="D3231059079250E64E490418C8860435326DBD9946ABED2D9832E66D20F027AF" validation="SHA1" decryption="AES" />

Я использую http://aspnetresources.com/tools/keycreator.aspx

1 ответ

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

ИЛИ Попробуйте отправить AntiForgeryToken с данными в вызове ajax.

data : { __RequestVerificationToken: $('input[name="__RequestVerificationToken"]').val() }
Другие вопросы по тегам