asp.net-mvc – ASP.NET MVC验证ViewState MAC失败
在发布我的ASP.NET MVC Web应用程序的新版本之后,我经常看到浏览网站时抛出这个异常:
System.Web.Mvc.HttpAntiForgeryException:未提供必需的防伪令牌或无效。 —> System.Web.HttpException:viewstate MAC的验证失败。如果此应用程序由Web场或群集托管,请确保配置指定相同的验证关键字和验证算法。 AutoGenerate不能在群集中使用。 —> System.Web.UI.ViewStateException:无效的viewstate。 在我关闭Firefox之前,我在Web应用程序中访问的每个页面上将继续发生这种异常。重新打开Firefox后,该网站工作完美。任何想法发生了什么? 补充笔记: >我没有使用任何ASP.NET Web控件(在我的应用程序中没有runat =“server”的实例) 解决方法
在封面下,MVC AntiForgeryToken属性使用machinekey进行加密。如果您没有在web.config中指定一个machinekey(参见
here),ASP.NET(
full description)将为您自动生成一个。
如果ASP.NET应用程序重新启动(例如执行iisreset),则浏览器cookie中的AntiForgeryToken仍将使用旧的机器密钥进行加密,因此为什么它会以上述错误崩溃。 所以你应该总是在使用MVC时在web.config中指定一个machinekey。 <configuration> <system.web> <machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B" decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F" validation="SHA1" decryption="AES" /> ... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 使用Asp.net在jquery中更改事件
- asp.net signalR 专题—— 第三篇 如何从外部线程访问 Pers
- asp.net-mvc-3 – 在ASP.NET MVC3 Intranet应用程序中获取登
- IIS或ASP.NET是否创建了包含请求URL的ETW事件?
- asp.net-mvc – WS-FED身份验证(ADFS)和ASP.NET Identity U
- 在控件asp.net之间动态添加
- 单声道是asp.net的可行替代方案吗?
- asp.net – Web.config中的瑞典语文本
- asp.net-mvc – 在IIS 5.1上部署ASP.NET MVC(Windows XP)
- asp.net – 使用Visual Studio 2012发布到azure时,我可以使
- Asp.Net 不同的OnClick事件区别小结(onservercli
- asp.net-mvc-3 – 不能将lambda表达式转换为’st
- msbuild – 使用新的ASP.NET CORE 1.1 csproj文件
- asp.net-mvc – MVC 2中自定义模型绑定器的自定义
- asp.net-mvc – 如何在每个页面上显示会员详细信
- asp.net – 已添加具有相同密钥的项目. IIS WCF休
- 如何在glimpse / Asp.NET MVC中显示控制器使用的
- ASP.NET 使用Swagger开发Web API接口项目
- asp.net-mvc – 如何将通用列表传递给Html.Actio
- ASP.NET Excel导出编码问题