System.Web.HttpRequestValidationException问题

时间:2011-08-05 06:28:22

标签: c# javascript asp.net httprequest

我陷入了问题的困境 System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client一周。这是由多行文本框引起的。为了解决这个问题,我在页面标题和web.config页面中添加了一个属性“Validation Request = false”。但它没有奏效。请帮助我。 我希望借助多行文本框将<span></span>标记保存到数据库中。正是在这段时间内,这个概率发生了。否则它可以正常工作。

3 个答案:

答案 0 :(得分:4)

将以下属性添加到web.config中的httpruntime标记:

<httpRuntime requestValidationMode="2.0" />

设置此值后,在pages标签中设置validateRequest =“false”:

<pages validateRequest="false"> 

答案 1 :(得分:2)

我认为您最好在将html发送到数据库之前对其进行编码

使用Server.Encode(YourTextBoxId);

例如,如果您的命令如下:

cmd.Parameters.AddWithValue("@htmlcodefromtextbox", TextBox1.Text);

试试这个

cmd.Parameters.AddWithValue("@htmlcodefromtextbox",  Server.Encode(YourTextBoxId));

如果您的命令如下:

cmd.Parameters.Add("@htmlcodefromtextbox", SqlDbType.Text).Value = TextBox1.Text;

使用此代替

cmd.Parameters.Add("@htmlcodefromtextbox", SqlDbType.Text ).Value =Server.HtmlEncode( TextBox1.Text);

我当然会做得很好。

答案 2 :(得分:1)

您需要在受影响的页面的page指令或web.config中添加EnableEventValidation =“false”。

不建议这样做,启用它意味着您应该采取严格的措施尽可能地消毒输入。

此致

的Si