asp.net檢測到有潛在危險(xiǎn)的 Request.Form 值解決方案匯總
當(dāng)我們?cè)诰W(wǎng)站中使用CKEditor等富文本編輯器時(shí),大多都會(huì)遇到這樣的到警告


這是因?yàn)锳SP.NET默認(rèn)開啟對(duì)頁面提交內(nèi)容的驗(yàn)證(不僅是ASP.NET MVC,WebForms也默認(rèn)啟用對(duì)頁面提交的內(nèi)容進(jìn)行驗(yàn)證),解決這個(gè)問題的關(guān)鍵就在于在有富文本編輯器的頁面或者會(huì)有提交html代碼的頁面關(guān)閉驗(yàn)證,可大致分為以下三種情況:
這種情況相比之下算是最好解決的,直接在需要的頁面頂部的 Page 指令中設(shè)置 ValidateRequest="false"即可
這種情況與framework2.0 相比,稍微麻煩一些,不僅需要在頁面頂部聲明 ValidateRequest="false",還需要在 web.config文件中進(jìn)一步修改,在web.config 添加或修改
<httPRuntime requestValidationMode="2.0"/>
第一步,修改web.config文件,如果是針對(duì)在某個(gè)目錄下的文件的話,可以直接新建一個(gè)web.config文件(web.config文件有"就近原則",重復(fù)定義的屬性,以離頁面最近的web.config文件定義的為準(zhǔn)),并在<system.web>節(jié)點(diǎn)下添加
<pages validateRequest="false" ></pages>

(如果大多數(shù)文件都需要設(shè)置取消驗(yàn)證的話可以直接修改在網(wǎng)站根目錄下的web.config文件)
第二步則需要在所需要設(shè)置的頁面對(duì)應(yīng)的Action方法上添加 [ValidateInput(false)] 屬性,以標(biāo)明取消驗(yàn)證。
第三步,最后在顯示的頁面應(yīng)當(dāng) 使用Html.Raw() 方法輸出帶html的內(nèi)容,因?yàn)槟J(rèn)情況下會(huì)將html轉(zhuǎn)義
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注