2010-07-26 66 views
3

可以這樣說:什麼時候應該考慮使用SessionState來保存我的變量值?

「如果你有這些情況,那麼SessionState是一個必須用來在回發之間存儲你的值。」

你可以列出我這迫使一個asp.net開發人員從ViewState中或HiddenFields或查詢字符串轉換SessionState的基本原因是什麼?每當你想保持服務器

的服務器上的部分信息

  • 每用戶
  • 是出於安全考慮

    感謝

回答

4
  • 有時它可以節省時 你有一個用戶特定的對象, 將前往,因爲它是同時一些努力用戶 導航了超過兩頁。

  • 當用戶數據是敏感的,你 無法使用的客戶端技術,以節省 它,如果你加密它,你將 通過 加密進入性能問題和解密每次尤其是在 大上工作時間的數據 系統當aspx頁面有 數千行代碼(該 表現已經夠糟糕命中)

1

會話狀態使用。您不想傳遞視圖狀態,隱藏字段或查詢字符串中易於出現瀏覽器安全性的信息。這3個可以輕鬆閱讀。

此外,請確保不要在會話狀態中放置太多信息,或者當您確實不要使用狀態管理器或sql server等進程外方法重新考慮時。

0

要添加到已經收到的答覆:

  • 當您想要與用戶關聯的數據量相對較大時。在這些情況下,如果你正在處理回發(如果超過約150K,真的會減緩爬行的響應速度)ViewState非常慢,查詢字符串完全不合適(由於URL大小以及Web服務器強加的長度限制和瀏覽器。)
1

如果你有一個用戶唯一的數據,獲取/創建相對昂貴,但不需要太多的內存來存儲,那麼你有一個很好的候選人。

一個示例是從昂貴的數據庫查詢中獲取的數據或從遠程Web服務檢索到的數據。

ViewState,隱藏字段和查詢字符串應該用於少量不敏感的數據。

允許用戶通過查詢字符串輸入數據可能特別有用,因爲用戶可以製作包含這些數據的書籤。

相關問題