广杰博客

  • 首页
  • IT资讯
  • IT运维
  1. 首页
  2. IT运维
  3. 正文

验证视图状态 MAC 失败

04/01/2011 1491点热度 0人点赞 0条评论

.NET程序出现这个错误:
验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
分析后找到了问题的根源。首先,文章中提到,如果用GridView,DATALIST并且指定了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验证错误。
解决方法:
通过在Web.config里边添加
< system.web>配置节添加
< pages enableEventValidation="false" viewStateEncryptionMode ="Never" />

标签: 暂无
最后更新:01/01/1970

guangjie

这个人很懒,什么都没留下

点赞
下一篇 >

文章评论

您需要 登录 之后才可以评论
最新 热点 随机
最新 热点 随机
Red Hat Enterprise Linux 9 发布,大量组件升级 windows10 家庭版添加hyper-v虚拟机组件 Red Hat Enterprise Linux 8.5 GA 发布 Rocky Linux 8.4 GA正式版发布下载 Rocky Linux 8.3 首个候选版本发布 CentOS 8.3 (2011) ISO镜像下载发布 CentOS Linux 落幕 CentOS Stream 上位 CentOS Linux 7.9 (2009) iso镜像下载 Windows 10 2020年10月更新ISO下载 ubuntu ssh通过密钥登陆服务器
MSN发起彩虹签名活动 配置 URLScan 工具 快速升级MySQL系统表 windows8.1最新专业版和企业版下载地址 phpMyadmin 服务安全加固IP限制 用JavaScript代码防止网站被挂IFRAME木马 php再度更新重要安全补丁,发布php5.4.2和5.3.12 linux 常用命令及技巧 windows server 2008下任务计划不能正常执行bat批处理文件 windows virtual pc不再需要硬件协助虚拟化支持
标签聚合
Hyper-V Windows Server 2012 nginx redhat springboot android linux php_curl
友情链接
  • linux运维
  • 郑州SEO

COPYRIGHT © 2021 gjie.cn. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备07002435号-8