在提交表單時候aspnet 提示"從客戶端()中檢測到有潛在危險的 RequestForm 值" aspnet中的請求驗證特性提供了某一等級的保護措施防止XSS攻擊aspnet的請求驗證是默認啟動的這個給出各個版本net的解決方法
aspnet 通常解決辦法
方案一
將aspx文件中的page項添加ValidateRequest="false" 如下
<%@ Page ValidateRequest="false" Language="C#" AutoEventWireup="true" CodeFile="testaspxcs" Inherits="test" %>
方案二
修改webconfig配置文件
<systemweb>
<pages validateRequest="false" >
</pages>
</systemweb>
總結validateRequest 這句我們知道是關閉驗證也就是說提交帶標簽比如 <strong>粗體</strong> 這樣的值時ASPNET 不會報錯這裡推薦使用方案一因為方案一只修改testaspx這一個頁面而如果使用方案二的話將是整個解決方案都變成ValidateRequest="false"
aspnet 解決辦法
和的方法一樣不過要注意的是從 Net Framework 開始aspnet開始強制檢測Request參數安全而我們可以通過修改 Webconfig 來恢復 版本的模式
方法如下
修改Webconfig增加requestValidationMode=""屬性值
<systemweb>
<httpRuntime requestValidationMode="" />
<pages validateRequest="false"></pages>
</systemweb>
中多了一個 requestValidationMode這是什麼意思呢?
requestValidationMode 有兩個值
•僅對網頁啟用請求驗證是啟用還是關閉取決於 validateRequest
• 默認值任何 HTTP 請求都會啟用請求驗證也就是說不光是網頁還包括 Cookie 等此時強制啟用不管 validateRequest 為何值
由於 requestValidationMode="" 是強制啟用所以我們會發現在 NET Framework 中僅靠設置 validateRequest 是關閉不了請求驗證的還得將 requestValidationMode 設置為
From:http://tw.wingwit.com/Article/program/net/201311/14108.html