从ASP转换后出现无效ViewState错误.NET 1.1到ASP.净额3.5
Invalid ViewState error after conversion from ASP.NET 1.1 to ASP.Net 3.5
[我在下面发布我们的问题和解决方案作为参考。如果您有微软或代表组织关于此问题的官方声明,我会将其标记为答案。否则,我在下面的帖子将作为答案]
问题:
我们参加了ASP。NET 1.1应用程序并将其转换为ASP。净额3.5。当我们双击页面上的某个项目,或者选择该项目并单击"确定"按钮时(两者都会启动相同的后发功能),服务器上的页面处理会因Invalid ViewState错误而停止。
我们所做的调试:这是针对驻留在公司内部网上的程序。由于它的存在。Net 1.1,该程序主要针对Internet Explorer,JavaScript不在其他浏览器上运行。F12开发人员工具在Internet Explorer中打开JavaScript调试控制台。通过使用Visual Studio附加到IIS 7.5进程(w3wp.exe),我们可以查看C#服务器代码错误。
我们发现:网页上有一个名为__EventValidation的隐藏字段。在用Visual Studio检查服务器上的C#错误的基础上,我们发现ASP。Net获取该字段的值,并将其解释为ViewState字段的值(ViewState是一个包含页面信息的编码字符串),该字段位于另一个隐藏字段中(我们可以使用F12开发工具在页面中看到这两个值)。但是-这些页面没有ViewState值-代码中使用"EnableViewState=false"专门禁用了它。
此页面的结构是一个包含.aspx的页面,除了包含子url的iframe之外没有其他数据,该子url用于显示包含数据的页面。
[我在最初的帖子中发布了我们的问题和解决方案,作为参考。如果您有微软或代表组织关于这个问题的官方声明,我会将其标记为答案。否则,这篇帖子将作为答案]
解决方案:
我将web.config文件中名为enableEventValidation的标志设置为false,如下所示:
<pages enableEventValidation="false" viewStateEncryptionMode="Auto">
此标志在1.x框架中不可用。参考:https://msdn.microsoft.com/en-us/library/system.web.configuration.pagessection.enableeventvalidation(v=vs.90).aspx
我原本以为这是在打开一个安全漏洞,但它只是在恢复。净1.1行为。从上面的链接:"EnableEventValidation属性指示是否应该执行事件验证。默认值为true。Web应用程序可以选择禁用事件验证以恢复到.NET Framework 1.0版本的行为。"
这恢复了原来的功能。
这与广泛报道的Invalid ViewState MAC错误类似。但这是一个不同的错误。我最初在这里找到了web.config更新的解决方案:http://blogs.msdn.com/b/tom/archive/2008/03/14/validation-of-viewstate-mac-failed-error.aspx-但我们没有将viewStateEncryptionMode设置为"从不",而是将其设置为"自动",它仍然有效。
- 借助asp.net验证或java脚本对多个文本进行验证
- 将Javascript数组发送到控制器ASP.NET MVC
- ASP.NET通过单击JavaScript按钮触发c#事件
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 从javascript调用asp.net codebehind函数
- 使用javascript的Asp.net内容占位符
- 获取ASP.NET Ajax Timer状态
- ASP.NET网络摄像头显示
- 如何在只能有一个asp.net表单的主页上从asp.net页面中的javascript中获取值
- 如何将乳胶配方奶粉图像保存到Asp.net中的文件夹中
- asp.net,包括iss上的javascript slow
- 选择不在GridView-ASP.NET中激发
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 使用ASP.NET将谷歌地图添加到项目中,并从数据库中检索位置
- 有什么“;错误的”;将javascript放在asp.net表单上,而不是放在单独的文件中
- 将Javascript日期转换为ASP.NET日期格式
- C#asp.net mvc Set CheckBoxFor已检查的具有Model Value的属性
- 在asp.net中确认是或否消息
- ASP.NET MVC 3-在ajax调用后,重定向到新页面或生成页面刷新
- asp.net中的验证工具