WEB开发网
开发学院WEB开发ASP.NET validateRequest 危险字符串过滤 阅读

validateRequest 危险字符串过滤

 2010-04-25 17:43:34 来源:WEB开发网   
核心提示:由于在.net中,Request时出现有HTML或javascript等字符串时,validateRequest 危险字符串过滤,系统会认为是危险性值,立马报错, } }//检查代码,把代码转义成html代码形式 protected void Button1_Click(object sender, EventA

由于在.net中,Request时出现有HTML或javascript等字符串时,系统会认为是危险性值。立马报错。

 
解决方案一:  
在.aspx文件头中加入这句:  
<%@  Page  validateRequest="false"   %>  


解决方案二:  
修改web.config文件:  
<configuration>  
  <system.web>  
    <pages  validateRequest="false"  />  
  </system.web>  
</configuration> 

 
因为validateRequest默认值为true。只要设为false即可。

==========

如果未关闭ValidateRequest时,用以下asp.net代码进行危险捕获和提示:

   PRotected void Page_Error(object sender, EventArgs e)
   {
     Exception ex = Server.GetLastError();
     if (ex is HttpRequestValidationException)
     {
       Response.Write("输入的内容中有危险字符,比如<>等");
       Server.ClearError(); // 如果不ClearError()这个异常会继续传到application_Error()。
     }
   }

//检查代码,把代码转义成html代码形式
   protected void Button1_Click(object sender, EventArgs e)
   {
     // 将输入字符串编码,这样所有的HTML标签都失效了。
     StringBuilder sb = new StringBuilder(HttpUtility.HtmlEncode(ftbContent.Text));

 // 然后我们选择性的允许<b> 和 <i>
    sb.Replace("<b>", "<b>");
    sb.Replace("</b>", "");
    sb.Replace("<i>", "<i>");
    sb.Replace("</i>", "");
     ftbContent.Text = sb.ToString();
   }

Tags:validateRequest 危险 字符串

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接