1. 程式人生 > >從客戶端(userName="")中檢測到有潛在危險的 Request.Form 值

從客戶端(userName="")中檢測到有潛在危險的 Request.Form 值

.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