验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 machineKey...
转自:http://hi.baidu.com/taotaowyx/blog/item/074bb8d83907bb3233fa1ce6.html
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
分析:
分析后找到了问题的根源。首先,文章中提到,如果用GridView,并且指定了DataKeyNames属性,则出于安全的理由(因为DataKeyNames指定的字段代表数据的主键,且该主键值需要保存在视图状态中发送到客户端,用户如果篡改主键值,会导致安全问题),GridView会要求加密视图状态。为此会自动在页面表单</forms>之前添加一个<input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" /> 。
然而,Atlas的UpdatePanel要求放置在<form></form>内部,也就是</form>之前。这就意味着添加的隐藏input控件没有被放置在UpdatePanel内,而是放置在UpdatePanel和</form>之间。
当UpdatePanel更新时,UpdatePanel内部的控件被提交到服务器进行处理(Patrial Rendering),而整个页面并没有被提交。也就是说隐藏的input控件没有随着一起提交。因此服务器并不知道提交的ViewState被加密了,从而导致MAC验证错误。
解决方法有二,仅供参考:
1.可以在当前页面的<page ...>里加两个属性:
enableEventValidation="false" viewStateEncryptionMode ="Never"
2.当然还可以在web.config里加入:(<system.web>之间)
<pages enableEventValidation="false" viewStateEncryptionMode ="Never" />
其余方法
在web.config中的pages节点上添加enableviewstatemac=false
附带:::::
一般而言是因为你的某些操作修改了视图状态,我猜测你可能使用了ajax并在客户端用javascript动态添加了某些项
1. 在出错页面的 <%@ page %>中加enableviewstatemac="false"无效。 2. 在web.config的 <system.web>节中加 <machineKey validationKey="3FF1E929BC0534950B0920A7B59FA698BD02DFE8" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A77" decryption="3DES" validation="SHA1"/>我的问题是加入: <machineKey validationKey="3FF1E929BC0534950B0920A7B59FA698BD02DFE8" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A77"/> 解决
最重要的是检查自己的页面 很可能是你的页面中的问题 多注意下 肯定能发现问题 而这个问题并没有报出你想要的错误 !!! 所以 不一定所有的解决方案都适合你!!!
验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 machineKey...相关推荐
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保machineKey...
验证视图状态 MAC 失败.如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法.不能在群集中使用 AutoGene ...
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate...
MAC 失败.如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法.不能在群集中使用 AutoGenerate . 解决办法: 在出错页面添加: < ...
- 跨服务器post数据失败:验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 machineKey 配置指定了相同的 validationKey 和验证算法。的解决办法
非常简单,在webconfig中的 system.web中加入以下代码即可. <pages enableViewStateMac="false"></pages ...
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 machineKey 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate...
查下MSDN就明白了,validationKey和decryptionKey的默认值是AutoGenerate,由系统随机生成密钥,如果在本地或者使用的是独立主机通常不会有什么问题,但是使用虚拟主机, ...
- 验证视图状态MAC失败问题正确的解决办法
今天做了个首页登陆的页面,是用Request.Form接收参数的 然后又做了个测试页面test.aspx,代码如下: <body> <form id="form1& ...
- 验证视图状态 MAC 失败的解决办法
昨天用户反应系统中有问题,问题就在于翻页的时候,系统会报以下错误.但是我们的系统已经上线1年多了,从来没出现过错误,怎么会出现错误呢? 于是开始检测,查找原因. 1. 出错提示 "/&quo ...
- 验证视图状态MAC失败的解决办法
在网上搜寻了很久看了很多关于MAC验证视图状态失败的解决方法.大部分人都说是在页里或web.config里加 EnableEventValidation="false" Enabl ...
- 验证视图状态 MAC 失败 的解决办法
"/"应用程序中的服务器错误. 验证视图状态 MAC 失败.如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationK ...
- 验证视图状态 MAC 失败
验证视图状态 MAC 失败.如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法.不能在群集中使用 AutoGene ...
最新文章
- Ext Tree异步树的增加修改删除的简单实现~
- java中实现选择文件_Java实现选择文件并显示文件内容代码
- 织梦电脑站手机站伪静态+全套伪静态规则-固定目录版
- mac apache服务器
- percona-toolkit工具包的使用教程
- day4.编程语言简介
- spring MVC interceptor post遇到问题
- idea maven repositories为空
- 理解乐观锁、悲观锁、共享锁、排他锁、表锁、行锁
- Windows 程序设计应用开发(上部)
- Linux-Grep命令详解
- c语言期末考试题库大题及详解答案,C语言期末复习题答案.doc
- 阿里云CentOS 6.8 + WordPress + 芒果云KODExplorer
- 2012年中国大学最新排名
- Wincc服务器右下RT状态,关于wincc rt
- Mac下载安装vscode
- 易知微当选中国互联网协会数字孪生技术应用工作委员会成员单位
- 导出word中图片的方法
- 通信协议学习-485通信(1)
- CEF(Chromium Embedded Framework和JavaScript交互相互调用函数和设置数据