現在ASP.NET程序員可以使用很多種方式來保存用戶請求信息。下面主要介紹ASP.Net關於狀態管理的幾種方式。
一般而言,HTTP協議是非狀態服務,它不保存任何用戶請求信息。直至NetScape開始使用CookIEs來保存用戶請求信息,Web應用程序有了極大的發展。現在ASP.Net程序員可以使用很多種方式來保存用戶請求信息。
下面主要介紹ASP.Net關於狀態管理的幾種方式。
客戶端
ASP.NET,提供了Cookies, QueryStrings (URL), Hidden fields, VIEw State and Control state (ASP.Net 2.0),來管理客戶端請求。
一 CookIE
Cookie是以文本存儲於計算機中,使用name-value匹配。一般用戶存儲標識用戶信息,如:用戶名,用戶使用配置等。雖然Cookie可以被加密存儲,但不推薦在Cookie中保存用戶密碼。第二,CookIE的大小是限定的,所以不適合存儲大型數據。
Example:
1.獲取用戶ID
if (Request.Cookies["UserId"] != null) lbMessage.text = "Dear" + Request.CookIEs["UserId"].Value + ", Welcome to
our website!"; else lbMessage.text = "Guest,welcome to our website!";
2.設置CookIE
Response.CookIEs["UserId"].Value=username;
優點:
使用簡單
缺點:
1.客戶端可以禁用CookIE
2.CookIE在每次請求或發送時都會被加載,影響傳輸。
3.易被攻破,所有不適合存儲安全信息。
二 Hidden fIElds(隱藏控件)
Hidden field是在頁面級保存信息。與其他用戶標准控件的區別是,Hidden Field不被呈現在頁面中。當頁面提交的時候,Hidden FIEld中的值將被一同發送給服務端。雖有在ASP.Net 2.0中,我們可以使用ViewState來代替,但Hidden FIElds依然可以用來存放一些不關鍵信息。
protected System.Web.UI.HtmlControls.HtmlInputHidden Hidden1; //to assign a value to Hidden field Hidden1.Value="Create hidden fields"; //to retrIEve a value string str=Hidden1.Value;
優點:
1.使用簡單
2.可以存儲少量數據
缺點:
1.不安全,以明文的形式直接從網絡傳輸
三 VIEw State(狀態視圖)
狀態視圖VIEwSate,可以用來為單獨用戶存儲信息。你可以通過設置EnableViewState屬性來控制ViewState的使用,在默認的情況下屬性值為True.VIEwSate在每次用戶請求或服務端響應時,都會被傳輸。