2016-08-11 77 views
0

我接管了100%設計用於移動設備的ASP.NET Web表單應用程序的開發。目前,該應用程序非常大量地使用會話變量。該模式是默認的。在移動設備的網站上管理ASP.NET狀態

<sessionState timeout="600"></sessionState> 

它不會令你感到驚訝的是,應用程序是越野車,並且多少的問題,有會話數據丟失,或者整個會話丟失的事情。

只是一些普遍應用的概述:

  • 不敏感(安全隱患)的數據被存儲在會話
  • 會話的數據是小,但關鍵任務。沒有巨大的物體。短短几年INT的(標識的等),某些字符串等
  • 我們必須假設用戶的帶寬將是低的,並且,連接性將是參差不齊
  • 的數據是每個用戶的獨特

我對管理層提出的關於如何使該應用程序更好的建議之一是停止使用會話變量並使用其他內容。我認爲切換到cookie來存儲所有這些數據是一個更好的方法來處理這個問題。我知道有些用戶可能會禁用cookies(即使在他們的移動設備上),但如果是這樣的話,我們可以簡單地通知他們,要使用該站點,他們需要重新打開cookie。

我想過使用查詢字符串,但僅僅從編程立場(建立鏈接等)查詢字符串是一個痛苦的工作。

我已經來到這個conculsion唸叨各種方式堅持國家數據這MSDN文章後,每個自己的親的和反對的的:這裏

https://msdn.microsoft.com/en-us/library/z1hkazw7.aspx

我的問題是:餅乾最好的選擇?

回答

0

餅乾的大小有限,如果您有很多變數,它們並不是最好的地方。人們也不喜歡cookies,所以可能會限制它們。

雖然ViewState是存儲數據的好地方。這是從您的網頁表單以回傳形式發送的,可用於存儲合理數量的數據。例如,如果您的應用程序使用多個頁面來完成一個過程(例如,訂購某些內容),那麼您可以將數據保存在ViewState中,並且在頁面回傳時這些數據將可用。

以正確的方式使用ViewState非常有效。