验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
说明: 执行当前 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="d41d8cd98f00b204e9800998ecf8427e0e5798a7e2c46b2fd4f0277bceaf08e1" validation="SHA1"/> 

解决

最重要的是检查自己的页面,很可能是你的页面中的问题,多注意下,肯定能发现问题,而这个问题并没有报出你想要的错误 !!!

所以,不一定所有的解决方案都适合你!!!

转载于:https://www.cnblogs.com/Setme/archive/2012/06/05/2537084.html

验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保machineKey...相关推荐

  1. 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 machineKey...

    转自:http://hi.baidu.com/taotaowyx/blog/item/074bb8d83907bb3233fa1ce6.html 验证视图状态 MAC 失败.如果此应用程序由网络场或群 ...

  2. 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate...

    MAC 失败.如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法.不能在群集中使用 AutoGenerate . 解决办法: 在出错页面添加: < ...

  3. 跨服务器post数据失败:验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 machineKey 配置指定了相同的 validationKey 和验证算法。的解决办法

    非常简单,在webconfig中的 system.web中加入以下代码即可. <pages  enableViewStateMac="false"></pages ...

  4. 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 machineKey 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate...

    查下MSDN就明白了,validationKey和decryptionKey的默认值是AutoGenerate,由系统随机生成密钥,如果在本地或者使用的是独立主机通常不会有什么问题,但是使用虚拟主机, ...

  5. 验证视图状态MAC失败问题正确的解决办法

    今天做了个首页登陆的页面,是用Request.Form接收参数的 然后又做了个测试页面test.aspx,代码如下: <body>     <form id="form1& ...

  6. 验证视图状态 MAC 失败的解决办法

    昨天用户反应系统中有问题,问题就在于翻页的时候,系统会报以下错误.但是我们的系统已经上线1年多了,从来没出现过错误,怎么会出现错误呢? 于是开始检测,查找原因. 1. 出错提示 "/&quo ...

  7. 验证视图状态MAC失败的解决办法

    在网上搜寻了很久看了很多关于MAC验证视图状态失败的解决方法.大部分人都说是在页里或web.config里加 EnableEventValidation="false" Enabl ...

  8. 验证视图状态 MAC 失败 的解决办法

    "/"应用程序中的服务器错误. 验证视图状态 MAC 失败.如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationK ...

  9. 验证视图状态 MAC 失败

    验证视图状态 MAC 失败.如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法.不能在群集中使用 AutoGene ...

最新文章

  1. [更新问题]无法在安装新的版本前,为“./boot/vmlinuz-2.6.24-19-generic”做一个符号链接备份...
  2. 简单易懂的 pwnable.kr 第六题[random]Writeupt
  3. 让浏览器变身代码编辑器
  4. 在SAP除了使用Cordova生产移动应用外,还有这种方式
  5. 数据接口测试工具 Postman 介绍
  6. frameset 后台管理_易达CMS下载-易达CMS(免费开源网站管理系统)v3.0.0.1103免费版
  7. Java EE 7是最终版本。 思想,见解和进一步的指针。
  8. ES6新语法--对象成员简写、对象展开、数组展开
  9. 【ElasticSearch】Es 源码之 PageCacheRecycler 源码解读
  10. 从此,懂一点CDMA
  11. SQL课堂笔记--索引和视图
  12. IEnumerableIEnumerablestring结构解析通用解决方案(支持指定属性顺序)
  13. LeetCode - 709. To Lower Case
  14. 车站计算机系统需要具备几天数据储存能力,(复习资料)城市轨道交通车站设备1.doc...
  15. 免费下载遥感数据的网址
  16. 实用Python识别图片上的数字(转载)
  17. MSOCache文件夹能否删除
  18. Python绘制表白爱心源码【女神看了绝对不会拒绝的你的表白嘿嘿】
  19. riboseq的下游分析ribodiff,在R里进行GO分析和KEGG分析
  20. 虎书学习笔记2:图形学基础数学(向量、点积、叉积、)

热门文章

  1. Hive 3 安装部署教程
  2. Linux使用umask创建目录,Linux umask命令
  3. 【嵌入式模块】MPU6050
  4. QQ2010聊天记录获取+各种应用
  5. Condition和 AQS 原理
  6. 计算机专业8g内存,win7系统台式机8G内存但是显示可用内存只有3.4G如何解决
  7. 详解同为4800W像素的相机传感器,三星GM1和索尼IMX586区别在哪里?
  8. (待完善)半监督学习(Semi-supervised learning)综述
  9. nginx在线与离线安装
  10. 页面因excel版本问题,无法上传excel文件