2012年10月25日 星期四

[C# ASP.Net] Client端資料當參數傳到新頁面


  如果有些資料不是很重要,又不想記在Server端時,就會把這些資料記在Client端。那如果想要在使用者動作後(按下按鈕)開啟新視窗,又要以儲在Client端的資料當參數帶到新視窗時可能得到一個錯誤訊息如下:

描述: 要求驗證偵測到具有潛在危險的用戶端輸入值,對這個要求的處理已經中止。這個值可能表示有人嘗試危害應用程式的安全性,例如跨站台的指令碼處理攻擊。若要允許頁面覆寫應用程式要求驗證設定,請將 httpRuntime 組態區段中的 requestValidationMode 屬性設定為 requestValidationMode="2.0"。例如: <httpRuntime requestValidationMode="2.0" />。設定這項值之後,您就可以停用要求驗證,方法是在頁面指令或 <pages> 組態區段中設定 validateRequest="false"。但是我們強烈建議您的應用程式應該明確地檢查所有這類的輸入。如需詳細資訊,請參閱 http://go.microsoft.com/fwlink/?LinkId=153133。


  在這些值可能被改的情況下,確認不會對網頁或其它資料有危險性時才可以讓這網頁不做驗證。讓網頁不做驗證的方式很簡單步驟如下:


1.Web.config檔加入
<system.web>
    <httpRuntime requestValidationMode ="2.0"/>
</system.web>

requestValidationMode 預設是4.0



2.在要開啟的新網頁<@ Page /> 中加入ValidateRequest="false"
表示這個網頁停止要求驗證

沒有留言:

張貼留言