Internet Explorer中的防伪令牌问题

时间:2019-07-09 09:54:47

标签: asp.net-mvc antiforgerytoken

我有我的ASP.NET MVC5应用程序,该应用程序托管在IIS上,最近我已将其身份验证从“ Windows”更改为“匿名”,因为我们希望为某些API调用提供AAD令牌。

我们看到了问题。每当从Internet Explorer打开应用程序时,都会有例外:

  

必填的防伪表单字段“ __RequestVerificationToken”不存在。

我们在操作方法中添加了Authorize属性,并在@Html.AntiForgeryToken()文件中添加了.cshtml

同一应用程序可以在Microsoft Edge和Chrome中正常运行。

该应用程序应该可以在IE中运行,并且可以在Edge和Chrome上运行

1 个答案:

答案 0 :(得分:0)

由于它可以在Chrome,FireFox和Edge中正常工作,因此此问题不是由代码引起的。它必须与IE中的某些设置有关。

防伪助手的方式 @Html.AntiForgeryToken() 可行的方法是在页面中注入一个名为__RequestVerificationToken的隐藏表单域,并且还将cookie设置到浏览器中。将表单发回时,将对两者进行比较,如果它们不匹配或缺少cookie,则会引发错误。

请检查Opera的Cookie设置,确保Opera接受@Html.AntiForgeryToken()设置的cookie。

关于如何在IE中启用Cookie:https://www.whatismybrowser.com/guides/how-to-enable-cookies/internet-explorer

也许这会对您有所帮助。