從客戶端(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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章