2010-08-27 69 views
-1

大家好,我想知道,我們可以存儲用戶的信息和會話信息以及控制三種計算策略是什麼在asp.net狀態管理

  1. 視圖狀態
  2. 會話狀態
  3. 自定義Cookie

,所以我想知道,在這種情況下,我們會使用以下1. View State 2. session state 3. custom cookies將任何一個描述每個

的重要性和使用
+3

是這樣的,以任何機會,功課? :-)這是一個相當廣泛的問題。如果你解釋了你的場景,可能會更好 - 這樣人們可能會建議最適合那種場景的東西。 – InSane 2010-08-27 10:07:36

回答

6

檢查下面的文章將介紹詳細

ASP.NET State Management Overview

基於客戶端狀態管理選項

  • 視圖狀態
  • 控制狀態
  • 隱藏字段
  • 每個選項餅乾
  • 查詢字符串

基於服務器的狀態管理選項

  • 申請國家
  • 配置文件屬性
  • 會話狀態
+0

什麼是基於客戶端的狀態管理? – 2010-08-27 10:16:36

+1

@Nishant - 查看msdn的鏈接文章,詳細描述了基於服務器和基於客戶端的狀態管理 – 2010-08-27 10:22:35

+0

基於客戶端的手段:狀態保存在客戶端的瀏覽器(例如,cookie,字段,查詢字符串),服務器基於方式:狀態保存在服務器上。這個列表中缺少的可能是緩存,數據庫,狀態服務器? – Abel 2010-08-27 10:52:17

0

國家管理是過程,其中你維護狀態和p針對相同或不同頁面的多個請求的年齡信息。

國家管理的類型

有2種狀態管理:

  1. 客戶端 - 端狀態管理 這通過嵌入信息到網頁存儲在客戶端計算機上的信息,統一資源定位器(url)或cookie。可用於在客戶端存儲狀態信息的技術列舉如下:

a。視圖狀態 - Asp.Net使用視圖狀態來跟蹤控件中的值。您可以將自定義值添加到視圖狀態。它被Asp.net頁面框架用來在呈現到頁面之前自動保存頁面和每個控件的值。頁面發佈時,頁面處理執行的第一個任務之一是恢復視圖狀態。

b。控制狀態 - 如果您創建要求視圖狀態正常工作的自定義控件,則應該使用控件狀態以確保其他開發人員不會因禁用視圖狀態而中斷您的控制。

c。隱藏字段 - 與查看狀態類似,隱藏字段將數據存儲在HTML表單中,而不在用戶的瀏覽器中顯示。該數據僅在處理表單時可用。 d)。 Cookies - Cookie在用戶的瀏覽器中存儲一個值,瀏覽器將每個頁面請求發送到同一臺服務器。 Cookie是存儲網站上多個Web頁面必須可用的狀態數據的最佳方式。

e。查詢字符串 - 查詢字符串存儲URL中用戶可見的值。當您希望用戶能夠通過URL發送電子郵件或即時消息狀態數據時使用查詢字符串。

  1. 服務器 - 端狀態管理

一個。應用程序狀態 - 應用程序狀態信息可用於所有頁面,而不管哪個用戶請求頁面。

b。會話狀態 - 會話狀態信息可供用戶在單次訪問期間打開的所有頁面使用。

當應用程序重新啓動時,應用程序狀態和會話狀態信息都會丟失。要在應用程序重新啓動之間保留用戶數據,可以使用配置文件屬性來存儲它。

優勢客戶的

優勢 - 端狀態管理:

  1. 更好的擴展性:隨着服務器端的狀態管理,每一個連接到Web服務器在Web服務器上消耗內存的客戶端。如果一個Web站點擁有數百或數千個併發用戶,則通過存儲狀態管理信息所消耗的內存可能成爲一個限制因素。將這種負擔推給客戶可以消除潛在的瓶頸。

  2. 支持多個Web服務器:使用客戶端狀態管理,您可以將傳入請求分佈到多個Web服務器上,而無需更改您的應用程序,因爲客戶端提供了Web服務器處理請求所需的全部信息。通過服務器端狀態管理,如果客戶端在會話中間切換服務器,則新服務器不一定有權訪問客戶端的狀態信息。您可以將多個服務器與服務器端狀態管理一起使用,但您需要智能負載平衡(始終將客戶端請求轉發到同一臺服務器)或集中式狀態管理(狀態存儲在中央數據庫中,所有Web服務器訪問)。服務器的

優勢 - 端狀態管理:

  1. 更好的安全性:客戶端狀態管理信息可以被捕獲(無論是在運輸途中或在它被存儲在客戶端上),或惡意修改。因此,您絕不應使用客戶端狀態管理來存儲機密信息,例如密碼,授權級別或身份驗證狀態。

  2. 降低帶寬:如果存儲大量狀態管理信息,將信息來回發送到客戶端可能會增加帶寬利用率和頁面加載時間,從而可能增加成本並降低可伸縮性。增加的帶寬使用率對移動客戶端的影響最大,因爲它們通常連接速度非常慢。相反,你應該在服務器上存儲大量的狀態管理數據(比如說,超過1 KB)

http://www.thedevheaven.com/2012/05/state-management.html

0

What is State Management?

網頁類的新實例每次將頁面發佈到服務器時創建。在傳統的Web編程中,這通常意味着與頁面和頁面上的控件相關的所有信息在每次往返時都會丟失。例如,如果用戶將信息輸入到文本框中,那麼從瀏覽器或客戶端設備到服務器的往返行程中將丟失該信息。

爲了克服傳統Web編程的固有侷限性,ASP.NET包含幾個選項,可幫助您在每個頁面和整個應用程序範圍內保存數據。

類型狀態管理:

有兩種類型的狀態管理技術:客戶端和服務器端。

客戶端

  1. 視圖狀態
  2. 控制狀態
  3. 隱藏字段
  4. 餅乾
  5. 查詢字符串

服務器端

  1. 申請國家
  2. 會話狀態
  3. 配置文件屬性

視圖狀態,控制狀態,隱藏域,Cookie和查詢字符串都涉及以不同的方式在客戶端上存儲數據。但是,應用程序狀態,會話狀態和配置文件屬性都將數據存儲在服務器的內存中。根據情況,每個選項都有明顯的優點和缺點。

Read more on "State Management" here.