這篇文章主要介紹了ASP.NET從客戶端中檢測(cè)到有潛在危險(xiǎn)的request.form值的3種解決方法,這是ASP.NET開(kāi)發(fā)中一個(gè)比較常見(jiàn)的經(jīng)典的問(wèn)題,需要的朋友可以參考下
當(dāng)頁(yè)面編輯或運(yùn)行提交時(shí),出現(xiàn)“從客戶端中檢測(cè)到有潛在危險(xiǎn)的request.form值”問(wèn)題,該怎么辦呢?如下圖所示:
下面博主匯總出現(xiàn)這種錯(cuò)誤的幾種解決方法:
問(wèn)題原因:由于在asp.net中,Request提交時(shí)出現(xiàn)有html代碼或javascript等字符串時(shí),程序系統(tǒng)會(huì)認(rèn)為其具有潛在危險(xiǎn)的值。環(huán)境配置會(huì)報(bào)出“從客戶端 中檢測(cè)到有潛在危險(xiǎn)的Request.Form值”這樣的Error。
1、當(dāng)前提交頁(yè)面,添加代碼
打開(kāi)當(dāng)前.aspx頁(yè)面,頁(yè)頭加上代碼:validateRequest=”false”,如:
代碼如下:
<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="false" CodeFile="default.aspx.cs"%>
2、全局修改web.config配置文件(此舉不建議、不安全)
打開(kāi)web.config文件,在<system.web></system.web>中間,加上如下代碼:
代碼如下:
<pages validateRequest="false" />
3、另一種處理方法:原因是所傳值含有特殊危險(xiǎn)符號(hào),那么可以在傳前,利用Server.HtmlEncode(string)方法,對(duì)字符串進(jìn)行編碼,這樣就會(huì)將危險(xiǎn)字符轉(zhuǎn)義為普通的字符。如TextBox1.Text=Server.HtmlEncode(str);
更多信息請(qǐng)查看IT技術(shù)專欄