从客户端检测到潜在危险的Request.Form值
我有这个问题。 我尝试了一切。 ValidateRequest =“false”..和解码和编码html ..等等..
我需要的是一个弹出框(所以我使用ModalPopupExtender)向用户呈现人们可以输入xml设置并单击确定/取消按钮关闭弹出窗口并保存。
但是,我继续收到此错误“从客户端检测到一个潜在危险的Request.Form值”..
这是我下面的测试代码(我的方案和错误的快速示例)..
代码背后:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication1 { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { ModalPopupExtender.Show(); string str = " "; txtAreaValue.InnerText = str; } protected void Display_Click(object sender, EventArgs e) { //Shows the Item detail Edit box ModalPopupExtender.Show(); } protected void BtnCancel_Click(object sender, EventArgs e) { ModalPopupExtender.Hide(); } } }
要运行代码..将ref添加到AjaxControltoolkit.dll然后运行,您将看到textarea填充了xml。 单击取消按钮,这会导致错误。 请有人帮帮我吗?
使用
在你的web.config中(保留你已经在该元素上的任何属性,如果它已经存在)。 ASP.NET4.0否则忽略ValidateRequest
。
当然,确保你采取必要的措施来防止真正危险的请求,因为它并没有为你完成。
编辑:这样做的一个好方法是创建自己的派生自RequestValidator
的类,并使用4.0行为,但将其作为执行检查的类。
以下是可能对您有帮助的解决方案。 为此进行服务器端配置设置。 如果要允许HTML元素作为项目中选定页面的输入,请设置此页面属性。
<%@ Page ValidateRequest="false" %>
每页上的此ValidateRequest =“false”。 如果您想要项目中的所有页面,而不是在Web.Config文件中进行更改。 在此部分中添加此标记。
如果您使用.Net 4.0,则必须在Web.Config文件中再进行一次更改。 在此部分中添加此标记。
以下是不validation.Net 4.0中所有页面的请求的配置
这是完整的例子。 点击这里…
好吧,人们只谈论Asp.net 4.0 ……我想我们也需要解决其他版本。 今天,当我用TinyMCE替换我的AjaxToolkit编辑器时遇到了同样的问题,并且回发时发现了同样的问题。
“从客户端检测到一个潜在危险的Request.Form值”..
所以我在webconfig中使用了这一行,它对我有用。
它应该适用于Asp.net 2.0到3.5。
更新:甚至可以工作到.net 4.5
更新:您还可以尝试在页面级别而不是整个网站上validation请求。 只是想让读者选择最好的方式。 感谢DVD指出这一点。
我创建了一个包含articleId和article_content列的表文章。 我还在article_content列中使用了html编辑器。 当我试图保存时,我得到了同样的错误。 通过将[AllowHtml]添加到类中的article_content属性来解决此问题。
[AllowHtml] [Required] public string article_content { get; set; }
不要忘记使用System.Web.Mvc包含命名空间。 有关详细信息,请访问: http : //www.infinetsoft.com/Post/A-potentially-dangerous-Request-Form-value-was-detected-from-the-client/1246
“从客户端检测到一个潜在危险的Request.Form值”..
1)在web.config
文件中设置httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="<,>,\"
2)在web.config文件的side pages标签中设置validateRequest="false"
从aspx页面发送一些电子邮件模板到代码后面我遇到了同样的问题….
所以我尝试通过添加来解决这个问题
在我的网页配置下enter code here
`但除非我推杆,否则没有帮助我
ValidateRequest="false"
aspx页面的page指令中的attrribute。
有3个选项可以删除此错误。
- 在页面指令中设置
validateRequest="false"
。 - 在web.config文件中设置
validateRequest="false"
。 - 如果您使用的是DotNet 4.0,请在web.config中设置
requestValidationMode="2.0"
查看此链接以获取更多信息。
如果符合您的需要,您可以在发送到服务器之前使用JavaScript对值进行编码
看到这个答案