从客户端(userName="<hr />")中检测到有潜在危险的 Request.Form 值

来源:互联网 发布:windows 10 v1703 编辑:程序博客网 时间:2024/05/02 02:28

.net4.0在MVC中使用fckeditor控件提交数据后出现此报错信息,试了半天才解决问题。

 

原因和解决方法:
1. 原因:是因为对某个控件赋Text值时,字符串里包含危险字符,如"<","\",">","&","\r\n"等字符。
2. 解决方法:

(1)如果是我们确实需要加入这些字符,比如我想生成的字符串加载到TextBox时,有缩进,换行就需要"\r\n\t"。解决方法是在需要的那个页面<@ Page />标签里加“validateRequest="false"”,意思是不对回传数据进行验证,因为不安全,建议只写在页面,不要写在web.config中。

如果项目是framework2.0的话,应该就好了,如果是framework4.0,就需要在web.config,<system.web>节点下加<httpRuntime requestValidationMode="2.0" />就可以了。
(2)如果不是自己需要的,可以使用Server.HtmlEncode(string)方法,对字符串进行编码,这样就会将危险字符转义为普通的字符。如TextBox1.Text=Server.HtmlEncode(teststring);
3. 微软参考网页:http://www.asp.net/whitepapers/request-validation

原创粉丝点击