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