您的位置:首页 > 理论基础 > 计算机网络

验证视图MAC失败。如果此引用程序由网络场或群集承载... 解决方法

2010-01-26 09:53 309 查看
在做的一个网站里偶尔会出现错误,一直没时间管,今天特贴出来以作记录

错误信息:验证视图MAC失败。如果此引用程序由网络场或群集承载,请确保 <machineKey>配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerateP>

原因:表格,指定了DataKeyNames属性,则出于安全的理由(因为DataKeyNames指定的字段代表数据的主键,且该主键值需要保存在视图状态中发送到客户端,用户如果篡改主键值,会导致安全问题),GridView会要求加密视图状态。为此会自动在页面表单 </forms>之前添加一个 <input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" /> 。

当UpdatePanel更新时,UpdatePanel内部的控件被提交到服务器进行处理(Patrial Rendering),而整个页面并没有被提交。也就是说隐藏的input控件没有随着一起提交。因此服务器并不知道提交的ViewState被加密了,从而导致MAC验证错误。

解决方法:

通过在Web.config里边添加

<pages enableEventValidation="false" viewStateEncryptionMode ="Never" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐