Проблема с токеном подделки в Internet Explorer - PullRequest
0 голосов
/ 09 июля 2019

У меня есть приложение ASP.NET MVC5, которое размещено на IIS, и недавно я изменил его аутентификацию на «Анонимный» с «Windows», так как мы хотели получить токен AAD для некоторого вызова API.

Мы видим проблемы. Всякий раз, когда приложение открывается из Internet Explorer, возникают исключения:

Обязательное поле формы защиты от подделки "__RequestVerificationToken" отсутствует.

Мы добавили атрибут Authorize в методы действия и добавили @Html.AntiForgeryToken() в файл .cshtml.

Одно и то же приложение отлично работает в Microsoft Edge и в Chrome.

Приложение должно работать как в IE, так и в Edge и Chrome

1 Ответ

0 голосов
/ 10 июля 2019

Так как он отлично работает в Chrome, FireFox и Edge, эта проблема не связана с кодом. Это должно быть связано с некоторыми настройками в IE.

Способ борьбы с подделкой @Html.AntiForgeryToken() работает, вставляя скрытое поле формы с именем __RequestVerificationToken на страницу И также устанавливает cookie в браузер. Когда форма отправляется обратно, они сравниваются, и если они не совпадают или отсутствует файл cookie, выдается ошибка.

Пожалуйста, проверьте настройки cookie Opera, убедитесь, что Opera принимает cookie, которые @Html.AntiForgeryToken() устанавливает.

О том, как включить Cookie в IE: https://www.whatismybrowser.com/guides/how-to-enable-cookies/internet-explorer

Может быть, это вам поможет.

...