我有一个asp.net应用程序,当我在搜索框中输入“:&#,”之类的特殊字符时会遇到一些问题。如果我在搜索框中输入此文本,我得到了这样的例外。
从客户端检测到潜在危险的Request.Form值(txtValue =“:&#,”)。
然后我在网上搜索,我有一个通用的解决方案,将validaterequest设置为false。但是我的申请没有任何变化。请帮我解决这个问题。任何回应将不胜感激。
答案 0 :(得分:22)
添加包含
的web.config<system.web>
<pages validateRequest="false" />
</system.web>
到包含有问题表单的页面的目录。
有关完整说明,请参阅http://www.asp.net/learn/whitepapers/request-validation。
如果你使用asp.net 4.0,你可以尝试
<httpRuntime requestValidationMode="2.0" />
另见
答案 1 :(得分:17)
有点晚了,但与那些说将其放入web.config的人一致是一个安全漏洞。
我使用相关控制器上的[ValidateInput(false)]
属性来执行此操作。
ValidateInput
位于MVC2中的System.Web.MVC
答案 2 :(得分:1)
我创建了一个包含article
和articleId
列的表article_content
。我还在article_content
列中使用了html编辑器。当我试图保存时,我得到了同样的错误。通过将[AllowHtml]
添加到类中的article_content
属性来解决此问题。
不要忘记使用System.Web.Mvc
包含命名空间。更多细节:
http://www.infinetsoft.com/Post/A-potentially-dangerous-Request-Form-value-was-detected-from-the-client/1246
答案 3 :(得分:1)
使用Framework 4.5,解决方案是修改web.config并添加以下行:
<httpRuntime requestValidationMode="4.5"/>
并按以下方式获取请求:
string reportXML = this.Request.Unvalidated.Form["reportstream"];