作者为朋友做一个物流网站时,发现:当页面编辑或运行提交时,出现“从客户端中检测到有潜在危险的request.form值”问题,该怎么办呢?如下图所示:


wKioL1cfVvGzsazwAAkNiUArzu4199.jpg



解决方案如下:   

(1) 打开当前.aspx页面,页头加上代码:validateRequest=”false”,如:

<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="false" CodeFile="default.aspx.cs" Inherits="default" %>



(2)全局修改web.config配置文件(此举不建议、不安全)
打开web.config文件,在<system.web></system.web>中间,加上如下代码:

<pages validateRequest="false" />

如果以上两种方法都无法解决,请接着往下看,

问题原因由于你当前的.net ifreamwork框架环境是2.0以上的版本,调成2.0即可以。

(3)同样,打开web.config配置文件,在<system.web></system.web>中间,加上代码:

<httpRuntime requestValidationMode="2.0" />

(4)如果你的网站程序本身是net 2.0环境开发的,但放到了VS2010软件里运行,也会出现这种情况,你可以把运行解决方案切换成net2.0即可 ,点visual studio 2010 菜单----"项目"-----"项目名+属性",如图所示。

wKiom1cfVuTh7P1dAAOMZ9S9gRY296.jpg



(5)另一种处理方法:原因是所传值含有特殊危险符号,那么可以在传前,利用Server.HtmlEncode(string)方法,对字符串进行编码,这样就会将危险字符转义为普通的字符。如TextBox1.Text=Server.HtmlEncode(str);



如还有问题的话,请见微软英文官网:http://www.asp.net/whitepapers/request-validation