“验证视图状态 MAC 失败……”的错误的解决方案
2006-10-25 08:57
246 查看
验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 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验证错误。
解决方法:
通过在Web.config里边添加
<pages enableEventValidation="false" viewStateEncryptionMode ="Never" />
如果用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验证错误。
解决方法:
通过在Web.config里边添加
<pages enableEventValidation="false" viewStateEncryptionMode ="Never" />
相关文章推荐
- “验证视图状态 MAC 失败……”的错误的解决方案
- asp.net错误:验证视图状态 MAC 失败。
- 验证视图状态 MAC 失败错误解决办法
- System.Web.HttpException: 验证视图状态MAC失败。如果此应用程序由网络场或群集承载,请确保配置指定了相同的validationKey和验证算法……解决方案
- 关于“验证视图状态 MAC 失败。如果此应用程序由网络场或群集承...”错误的解决方法
- 注册信息的时候出现错误 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey>
- cookies提前过期,及验证视图状态 MAC 失败解决方案
- cookies提前过期,及验证视图状态 MAC 失败解决方案
- 验证视图状态 MAC 失败......解决方案
- System.Web.HttpException: 验证视图状态MAC失败。如果此应用程序由网络场或群集承载,请确保配置指定了相同的validationKey和验证算法……解决方案
- "验证视图状态MAC失败"错误
- ASP.NET Post页面及验证视图状态MAC失败问题正确的解决办法
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate
- 验证视图状态 MAC 失败的解决办法
- 验证视图状态 MAC 失败的处理办法总结
- ASP.NET Post页面及验证视图状态MAC失败问题的正确解决办法
- Asp.Net2.0验证视图状态 MAC 失败 ( Validation of viewstate MAC failed )
- 验证视图状态 MAC 失败。
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate 的解决办法
- 验证视图状态 MAC 失败 ( Validation of viewstate MAC failed )