2009-06-04 71 views
0

是否有任何方法可以在不使用會話對象或數據庫的情況下保留整個Web應用程序會話中的數據?替換爲asp.net會話對象

+2

爲什麼會議不適合你? – 2009-06-04 13:01:14

回答

0

您可以將它們通過使用

response.redirect("URL") 

的URL或者如果你想隱藏變量

Server.Transfer("URL",True) 
0

還有ViewState的,但你必須要小心一點。

0

你有幾個選擇......你可以堅持查詢字符串上的所有內容,例如

http://www.example.com/MyPage.aspx?PersistedValue1=Value1&PersistedValue2=Value2 

或者您可以將它們存儲在Viewstate/Cache/Application vars中,如果它們是頁面級別或全局設置的話。

雖然我不確定這些比使用Session更好。你爲什麼不想使用它。

0

這取決於您不喜歡的會話和數據庫。例如:

您可以設置一個獨立的進程(如Windows服務)爲您存儲會話狀態信息。無論你喜歡什麼,該過程都可以將信息保存在內存或文件中。結帳this文章瞭解更多信息。

您可以有效地實現您自己的會話系統,將用戶特定的實現存儲在Web服務器上的XML文件中。

您可以使用QueryString參數在頁面之間傳遞信息。

您可以使用asp.net Cache對象並使用UserID鍵入信息。

0

您可以創建一個新的GUID作爲cookie發送,並將GUID存儲在保存在應用程序對象中的自定義對象中。話雖如此,您的應用程序可能會更好地使用內置於ASP.NET中的會話管理。

-1

不是會話嗎? 然後使用數據庫它是次佳!

1

下面是持久化數據的某些選項:

  • 會議
  • 餅乾
  • URL(查詢字符串PARAMS典型值)
  • 隱藏的表單變量(包括ViewState中)
  • JavaScript的數據(例如,在每個請求中將數組寫回客戶端)
  • 使用IFRAME或框架集,以便父頁不會更改,並且可以從而保持應用程序的狀態