在提交表单时候aspnet 提示"从客户端()中检测到有潜在危险的 RequestForm 值" aspnet中的请求验证特性提供了某一等级的保护措施防止XSS攻击aspnet的请求验证是默认启动的这个给出各个版本net的解决方法
aspnet 通常解决办法
方案一
将aspx文件中的page项添加ValidateRequest="false" 如下
<%@ Page ValidateRequest="false" Language="C#" AutoEventWireup="true" CodeFile="testaspxcs" Inherits="test" %>
方案二
修改webconfig配置文件
<systemweb>
<pages validateRequest="false" >
</pages>
</systemweb>
总结validateRequest 这句我们知道是关闭验证也就是说提交带标签比如 <strong>粗体</strong> 这样的值时ASPNET 不会报错这里推荐使用方案一因为方案一只修改testaspx这一个页面而如果使用方案二的话将是整个解决方案都变成ValidateRequest="false"
aspnet 解决办法
和的方法一样不过要注意的是从 Net Framework 开始aspnet开始强制检测Request参数安全而我们可以通过修改 Webconfig 来恢复 版本的模式
方法如下
修改Webconfig增加requestValidationMode=""属性值
<systemweb>
<httpRuntime requestValidationMode="" />
<pages validateRequest="false"></pages>
</systemweb>
中多了一个 requestValidationMode这是什么意思呢?
requestValidationMode 有两个值
•仅对网页启用请求验证是启用还是关闭取决于 validateRequest
• 默认值任何 HTTP 请求都会启用请求验证也就是说不光是网页还包括 Cookie 等此时强制启用不管 validateRequest 为何值
由于 requestValidationMode="" 是强制启用所以我们会发现在 NET Framework 中仅靠设置 validateRequest 是关闭不了请求验证的还得将 requestValidationMode 设置为