2014-06-11 169 views
0

遇到一個問題,對某些代碼進行簡單的更改 - 錯誤是指出查詢字符串可能很危險。查詢字符串一直保持不變,所有我已經改變爲後面的代碼的查詢字符串呼籲改變之前危險的查詢字符串,但它沒有改變?

代碼模式(工程):

protected void Page_Load(object sender, EventArgs e) 
    { 
     Check(); 

     if (!Page.IsPostBack) 
     { 
      //Bunch of methods 
     } 

     Set(); 
    } 

後(不工作):

protected void Page_Load(object sender, EventArgs e) 
    { 
     Check(); 

     if (!Page.IsPostBack) 
     { 
      if (UserInfo.Promotion != string.Empty && Request.QueryString["modal"].ToString() == "changeplan") 
      { 
       SetPageContentWithPromotion(); 
      } 
      else 
      { 
       //Bunch of method 
      } 
     } 

     Set(); 
    } 
} 

private void SetPageContentWithPromotion() 
    { 
     //bunch of logic to set up page 
    } 

我設置了斷點,它們甚至沒有被擊中。該頁面只顯示一個錯誤,並且該模式的代碼從未被觸摸。我難倒

+0

_頁面只顯示error_care分享? – Steve

+0

@Steve從客戶端檢測到潛在危險的Request.QueryString值。我覺得很奇怪,因爲我只改變了 – user3685738

+0

後面的模式代碼的page_load事件中的邏輯。在調試中,你能看到危險值是什麼嗎?既然你沒有發佈完整的代碼,它很難形象地顯示可能是不祥的。 –

回答

0

這一行添加到您的web.config如果它不存在:

<system.web> 
    <httpRuntime requestValidationMode="2.0" /> 
</system.web> 

則該特定aspx頁面設置該屬性在你的頁面標籤像下面的:

<%@ Page ValidateRequest="false" 

但是這是違反您網頁的安全性的。