Антиподделка ASP.MVC маркерные и криптографические ошибки

Я бы не рекомендовал редактировать / удалять рег. Обычно реестр - это беспорядок, с которым можно играть.

1118 Решение, которое мне помогает, довольно простое. Я только что добавил JIT-отладчик в Visual Studio. Шаги:

  • Открыть Windows Control panel

  • Programs

  • Programs and Features

  • Найти Visual Studio 2017

  • Нажмите Change. В открывшемся новом окне перейдите на вкладку Individual Components
  • Установите флажок Just-In-Time debugger
  • Нажмите modify

enter image description here

После перезагрузки VS ошибка должна быть исправлена.

7
задан tvanfosson 2 November 2009 в 15:53
поделиться

2 ответа

Я не уверен, есть ли корреляция, но после добавления файла robots.txt, исключающего мои действия при входе в систему, я больше не вижу этих ошибок. Я подозреваю, что это связано с тем, что поисковый робот попадает на страницу и пытается вызвать действие входа в систему.

РЕДАКТИРОВАТЬ : Я также видел эту проблему при получении старых файлов cookie после перезапуска пула приложений. Я прибег к настройке machineKey явным образом, чтобы изменения ключей проверки / дешифрования при перезапуске приложения не влияли на старые файлы cookie, которые могут быть повторно отправлены.

После обновления сайта и перехода на фиксированный ключ machineKey я обнаружил, что был все еще получаю эти ошибки от людей, у которых были файлы cookie из предыдущей версии. В качестве временной работы я добавил следующий обработчик Application_Error:

    public void Application_Error()
    {
        var exception = Server.GetLastError().GetBaseException();
        if (exception is System.Security.Cryptography.CryptographicException)
        {
            Server.ClearError();
            if (Request.IsAuthenticated)
            {
                var form = new FormsAuthenticationWrapper();
                form.SignOut();
                Session.Clear();
            }
            Response.Cookies.Clear();
            Response.Redirect( "~" );
        }
    }
4
ответ дан 7 December 2019 в 12:21
поделиться

I'm not so sure this has anything specifically to do with the antiforgery system, the inner exception states 'Validation of viewstate MAC failed.', from what I can tell, the default infrastructure for the antiforgery system has a dependency on the viewstate (actually if you take a look here you'll see see the dependency and horror (the CreateFormatterGenerator method at the bottom)).

As for why the viewstate mac is failing on the fake request, I'm not sure- but given the horror that exists in deserializing the antiforgery token (processing an entire fake request), it doesn't suprise me at all..

1
ответ дан 7 December 2019 в 12:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: