ASP.NET"无法验证数据"的解决方法

时间:2008/3/10 13:29:45      阅读:5377          
最近的系统经常遇到这种情况:
无法验证数据。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 无法验证数据。
经过在网上搜索,并测试,找到三种解决“无法验证数据”问题的方法:
1、设置web.config文件:
找到   
<pages validateRequest="false"/>

替换成
1<pages validateRequest="false" enableViewStateMac="false"/>
2、在出错的页面(**.aspx)修改代码成下面这样的:
<%@Page EnableViewStateMac="false">
 
3、修改machine.config文件(不推荐采用此方法):
  此文件位于:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config,找到“enableViewStateMac="true"”,改成“enableViewStateMac="false"”
关于此问题的解释:
 视图状态消息身份验证代码 (MAC) 是一种身份验证标记(又称校验值),当对消息同时应用身份验证方案和密钥时就会创建该代码。MAC 通过使用相同的密钥进行计算和验证。因此,MAC 仅能由预定的接收方验证。可以使用多种加密技术和算法来创建 MAC,如安全散列算法 (SHA)、消息摘要 5 (MD5) 算法或数据加密标准 (DES) 算法。
视图状态 MAC 功能用以防止客户发送含有恶意视图状态数据的请求。默认情况下,视图状态 MAC 功能通过使用 Machine.config 文件中的 enableViewStateMac="true" 标志启用。
要确定所遇到的问题是否与 MAC 有关,最简单的方式是将该功能关闭。为此,请将 enable ViewStateMac 标志设置为 False。如果不再遇到视图状态错误,则该问题与 MAC 有关。
CSDN有更多关于此问题的讨论:http://topic.csdn.net/t/20061018/11/5090850.html
 
评论
  • 暂未有评论提交。
标 题:
 
姓 名:
 
主 页:

验证码:

评论:
 

Because of the cache,you may see your comments several minutes later.