在vs2010,IIS部署环境是.NET4.0下,分析:从客户端中检测到有潜在危险的 Request.Form 值
1.产生原因:因为对某个控件赋Text值时,字符串里包含危险字符,如 "<" , "\" , ">" , "&" , "\r\n" 等字符。
2. 解决方法:
(1)如果是我们确实需要加入这些字符,比如我想生成的字符串加载到TextBox时,有缩进,换行就需要"\r\n\t"。
解决方法是在需要的那个页面<@ Page />标签里加“validateRequest="false"”,如下:
<%@ Page Title="一二三四" Language="C#" MasterPageFile="~/admin/cc.master" AutoEventWireup="true" ValidateRequest ="false" CodeFile="add.aspx.cs" Inherits="admin_add" %>
意思是不对回传数据进行验证,因为不安全,建议只写在页面,不要写在web.config中。
如果项目是framework2.0的话,应该就好了;
如果项目是framework4.0的话,就需要在web.config的<system.web>节点下加
<httpRuntime requestValidationMode="2.0" />。
(2)如果不是自己需要的,可以使用Server.HtmlEncode(string)方法,对字符串进行编码,这样就会将危险字符转义为普通的字符。
如 TextBox1.Text=Server.HtmlEncode(teststring);
更多可以参照:
http://www.asp.net/whitepapers/request-validation