中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET常用狀態管理有哪些

發布時間:2021-12-06 09:58:15 來源:億速云 閱讀:155 作者:iii 欄目:編程語言

這篇文章主要講解了“ASP.NET常用狀態管理有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ASP.NET常用狀態管理有哪些”吧!

ASP.NET常用狀態管理方案有:
◆視圖狀態View state
◆隱藏域 Hidden Fields
◆Cookies
◆Query string
◆Application state
◆Session state
◆Profile

ASP.NET常用狀態管理其中View state, hidden fields, cookies, and query strings將值以不同的方式保存在客戶端。而application state, session state, and profile則在服務器端將值以不同的形式保存起來。

視圖狀態(View state)

View state會自動保存web頁面各個元素的值,只要控件的EnableViewState=true. ViewState以鍵值對的形式存儲元素的值.在asp.net中,view state的值是以隱藏域的形式通過哈希的方法存儲在頁面中,形同:

  1. <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value=
    "/wEPDwUJNzgzNDMwNTMzZGTN7+FHXsyXJ2Jnzu0UxkEXCEetrg==" /> 

如果使用View state來存儲數據,那么數據的大小不能超過page的MaxPageStateFieldLength定義的值.
◆優點:無需服務器端資源,由于view state是保存在頁面中的,所以無需借用服務器端資源保存值的問題.使用簡易,只須以鍵值對的形式即可保存元素的值.安全性方面由于view state保存的值是經哈希處理并且壓縮過的,所以使用起來要比Hidden Fields安全.
◆缺點:性能問題,正因為view state將值保存在Page中,因此每次在加載頁面過程中都會去裝載view state中保存的值,因此帶來性能的損耗.
安全問題,雖然view state保存的值是經哈希處理并且壓縮處理的,但在頁面中仍然以hidden fields的形式存在,仍然易被黑客截取并利用.

隱藏域(Hidden Fields):

這是古老的asp保存元素值的一種方式.使用Hidden Fields取決于頁面提交數據的方式.必須通過Post方法提交,才能取得Hidden Fields的值,如果使用Http的 Get方法,則該Hidden元素的值無效。

Hidden Fields另外一個特點就是,它保存元素的值在Html代碼中是以明文的方式保存的。可以很方便地查看頁面html源代碼得到hidden fields元素的值。
◆優點:使用方便, 適用范圍廣,幾乎所有的瀏覽器和客戶端設備都支持hidden fields這種形式.
◆缺點:非常不安全、只能存儲非常簡單的數據,如string類型、性能問題,使用hidden fields如同view state一樣每次頁面顯示都要加載.

Cookies

Cookies也是在客戶端存儲數據的一種形式。Cookies可以長期保存數據,也可以暫時保存數據,這依賴于cookies的過期時間設置。Cookies對應的作用范圍是整個web站點,而不是某個頁面,它依賴于瀏覽器進行管理,如果客戶端瀏覽器禁用Cookies,那么就無法啟用Cookies在客戶端保存數據。Cookies伴隨著頁面的請求將數據發送到服務器端,它的值可以通過Request來獲取。大多數瀏覽器支持Cookies能夠存放4M字節的數據,同時瀏覽器對機器能夠容納的Cookies數也有限制,一般地,允許每個站點最多可以產生20個Cookies。

讀取Cookies的值:

if (Request.Cookies["UserSettings"] != null)  {  string userSettings;  if (Request.Cookies["UserSettings"]["Font"] != null)  { userSettings = Request.Cookies["UserSettings"]["Font"]; }  }  向Cookies寫值:  Response.Cookies["UserSettings"]["Font"] = "Arial";  Response.Cookies["UserSettings"]["Color"] = "Blue";  Response.Cookies["UserSettings"].Expires = DateTime.Now.AddDays(1d);

◆優點:可以配置過期時間、無需占用服務器端資源、簡單易用、也可以保持持久數據
◆缺點:大小限制,大多數瀏覽器置支持4M字節。受到用戶配置限制,如果瀏覽器禁用Cookies,那么該項功能就沒法使用、潛在的安全隱患。 由于Cookies是以文本文件的形式存放在客戶端機器中,雖然Cookies的內容經過哈希,但仍然可以被人獲取并利用。

查詢字符串

查詢字符串就是在頁面的URL后面加上一些參數,通過這種形式進行頁面之間的值傳遞。它提供了非常方便的頁面傳值方式。
◆優點:
簡單方便,應用非常廣泛
◆缺點:極不安全,非常有必要借助于URLEncode和URLDecode對字符串進行處理以增強安全。大小受到限制,一些瀏覽器或客戶端設備只支持長度為2083的URL字符串。

Application State

Asp.net允許你以Application state的方式存儲值--它是HttpApplicationState類的一個實例。Application state提供一個全局的存儲方式,可以被web 應用程序的每一個頁面獲取。Application state和Session State一樣,以鍵值對的形式存儲值。
◆優點:全局范圍
◆缺點:全局范圍、占用服務器資源、脆弱性,由于Application State是存儲在內存中,因此當應用程序停止或重啟時會丟失。擴展性差,無法在多個服務器或多個處理器之間共享。

Session State

Session State和Application state有點類似,但它作用于瀏覽器的會話中。如果不同的用戶使用你的應用程序會產生不同的session會話。Session state也是以鍵/值對的形式存儲數據。 
◆優點:使用方便、數據持久,因為asp.net提供的Session克服了原來asp進程依賴性的缺陷,可以將Session保存在數據庫中,因此session的數據***不會丟失。無需Cookies支持,這也是asp.net的一大改進之處,可以在ASP.NET中客戶端的Session信息以Cookieless方式存儲。
◆缺點:由于Session變量存儲在服務器端,因此占用服務器端資源。

Profile

以Profile的形式存儲數據是asp.net2.0提供的一個新功能。它是將信息存儲在數據庫中的,因此***不會丟失信息。
◆優點:數據持久性、可擴展
◆缺點:由于profile將數據存儲在數據庫中,因此存在以下特點,需要人工維護數據,性能略差

感謝各位的閱讀,以上就是“ASP.NET常用狀態管理有哪些”的內容了,經過本文的學習后,相信大家對ASP.NET常用狀態管理有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新营市| 三亚市| 巫溪县| 阿拉善右旗| 团风县| 滁州市| 平山县| 堆龙德庆县| 毕节市| 万年县| 日喀则市| 婺源县| 邯郸县| 沅陵县| 东宁县| 布拖县| 通州市| 左贡县| 宣化县| 塔河县| 邹平县| 周口市| 云阳县| 永靖县| 贵定县| 璧山县| 通许县| 织金县| 梧州市| 内江市| 高青县| 霍山县| 嘉定区| 桦甸市| 静乐县| 工布江达县| 石家庄市| 星座| 漯河市| 交城县| 闵行区|