2010-02-24 51 views
2

目前我們在我們的asp.net應用程序中廣泛使用查詢字符串。幾天前,我們正在努力改進網站。在這裏,我們首先決定不在地址欄上顯示網址的完整url,我詢問this question regarding it on SO如何與server.transfer一起使用query-sting?

我們得到的最好方法是使用server.transfer()。但現在看來,查詢字符串不起作用!有沒有辦法解決這個問題,以便我們可以使用查詢字符串,並且不要在地址欄上顯示網頁的網址。請指導。

在此先感謝。

回答

2

Server.Transfer應該通過any existing querystring or form collections到被調用的處理程序。

Transfer方法保留了QueryString和Form集合。

如果您致電Server.Transfer(path, preserveForm),請確保您將第二個參數設置爲true

但是,正如你所發現的,當調用Server.Transfer方法時,你不能設置具有querystrings的url的路徑。

也請注意用走這路線以下潛在問題:

  1. ASP.NET不驗證用戶應該有權訪問該資源 - 所以,如果你正在使用您的網站的標準授權機制,你將無法再依賴它們。
  2. 用戶將無法將任何頁面添加到您網站主頁之外的任何頁面/將人員鏈接/深層鏈接發送到您的網站。
  3. 搜索引擎將很難爲您的網站編制索引/投放結果,因爲他們只會看到一個網址。
+0

我會檢查它並儘快恢復。 – HotTester

0

你爲什麼要隱藏查詢蜇?是否有任何私人信息,如果這是我建議將它保存在會話中的情況。

+0

很多關於查詢字符串的邏輯和代碼已經寫入了...將它完全更改爲會話將非常耗時。我們正在探索可以儘快實施的選項。 – HotTester

0

如果對PreservForm使用Transfer方法,則可能會出現Viewstate驗證問題。 從一個頁面回發數據可能與另一個頁面的預期回發數據不匹配。

相關問題