说明: 执行当前 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 有关。
asp.net无法验证数据
最新推荐文章于 2021-03-24 15:40:49 发布