asp.net mvc4 程序,发布到服务器上,提交表单时出现错误“无法解密防伪标记。如果此应用程序由 Web Farm 或群集承载,请确保所有计算机都在运行相同版本的 ASP.NET Web Pages,并且 <machineKey> 配置指定了显式加密与验证密钥。不能在群集中使用 AutoGenerate。”,错误页面如下:
表单中使用了@Html.AntiForgeryToken(),通过Form提交方式。
提交到的函数:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult MyFun(MyModel model)
{
//...
return View();
}
在网上查找说可能是做了负载均衡,导致machineKey不一致,但是我只有一台服务器,也没有做负载均衡。抱着尝试的心态,在web.config中添加了machineKey,但问题依然存在,配置如下:
<system.web>
<machineKey validationKey="3FF1E929BC0534950B0920A7B59FA698BD02DFE8" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A77" decryption="3DES" validation="SHA1"/>
</system.web>
最后解决方法:有人提出是IE浏览器的问题,我当前使用的浏览器是IE11,改用360浏览器后,问题解决了!
但为什么IE会出现这种问题,有哪位大神知道的可以指点下!不胜感激!