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 – 将GridView导出到多个Excel工作表
- dependency-injection – ActionFilterAttribute ninject i
- asp.net – 在方法名称上过滤log4net – 无法得到它
- ASP.NET身份和移动客户端
- asp.net – HttpRuntime Cache和HttpContext Cache有什么区
- asp.net-mvc – 如何让ASP.NET MVC在IIS 6中运行?
- ASP.NET Web窗体:母版页和CSS文件
- ASP.NET MVC – 如何抛出与StackOverflow类似的404页面
- asp.net – %#Eval(“State”)%或%#DataBinder.Eval(Con
- asp.net – 会话存储在客户端或服务器端
- asp.net – 确定哪个UpdatePanel导致部分(异步)P
- asp.net-web-api – mvc webapi cross domain po
- asp.net-mvc – 维护消息完整性
- asp.net – HttpContext.Current.Request.IsAuth
- asp.net – MSDeploy.exe可以作为管理员连接,但不
- MONO / ASP.NET Linux主机?
- ASP.NET Web Api:如何使用URL参数传递访问令牌(
- asp.net-mvc – UpdateModel前缀 – ASP.NET MVC
- asp.net – 如何设置通配符(*)子域?
- asp.net – gzip压缩在Windows Azure网站
