沈陽電腦維修網,沈陽上門維修電腦服務
當前位置: 主頁 > 沈陽網站建設>編程高手 ASP.NET 狀態管理 >

編程高手 ASP.NET 狀態管理

時間:2011-6-9來源:www.tihyyw.tw 作者: 沈陽網站建設點擊:
沈陽電腦維修,上門維修電腦
一般而言,HTTP協議是非狀態服務,它不保存任何用戶請求信息。直至NetScape開始使用Cookies來保存用戶請求信息,Web應用程序有了極大的發展。現在ASP.NET程序員可以使用很多種方式來保存用戶請求信息。 下面主要介紹ASP.NET關于狀態管理的幾種方式。 客戶端 ASP.NET,提供了Cookies,QueryStrings(URL),Hiddenfields,ViewStateandControlstate(ASP.NET2.0),來管理客戶端請求。 一。Cookie Cookie是以文本存儲于計算機中,使用name-value匹配。一般用戶存儲標識用戶信息,如:用戶名,用戶使用配置等。雖然Cookie可以被加密存儲,但不推薦在Cookie中保存用戶密碼。第二,Cookie的大小是限定的,所以不適合存儲大型數據。 Example: 1。獲取用戶ID if(Request.Cookies["UserId"]!=null) lbMessage.text="Dear"+Request.Cookies["UserId"].Value+",Welcometoourwebsite!"; else lbMessage.text="Guest,welcometoourwebsite!"; 2。設置Cookie Response.Cookies["UserId"].Value=username; 優點: 使用簡單 缺點: 1。客戶端可以禁用Cookie 2。Cookie在每次請求或發送時都會被加載,影響傳輸。 3。易被攻破,所有不適合存儲安全信息。 二。Hiddenfields(隱藏控件) Hiddenfield是在頁面級保存信息。與其他用戶標準控件的區別是,HiddenField不被呈現在頁面中。當頁面提交的時候,HiddenField中的值將被一同發送給服務端。雖有在ASP.NET2.0中,我們可以使用ViewState來代替,但HiddenFields依然可以用來存放一些不關鍵信息。 protectedSystem.Web.UI.HtmlControls.HtmlInputHiddenHidden1; //toassignavaluetoHiddenfield Hidden1.Value="Createhiddenfields"; //toretrieveavalue stringstr=Hidden1.Value; 優點: 1。使用簡單 2。可以存儲少量數據 缺點: 1。不安全,以明文的形式直接從網絡傳輸 三。ViewState(狀態視圖) 狀態視圖ViewSate,可以用來為單獨用戶存儲信息。你可以通過設置EnableViewState屬性來控制ViewState的使用,在默認的情況下屬性值為True。ViewSate在每次用戶請求或服務端響應時,都會被傳輸。所以,為了減少網絡帶寬的使用,可以在不需要狀態視圖時設置EnableViewState屬性值為False。ViewSate在頁面中的存儲是經過Base64轉碼的,增加了額外的數據量,所以一定要注意保存較少的ViewSate。 //AdditemtoViewState ViewState["myviewstate"]=myValue; //ReadingitemsfromViewState Response.Write(ViewState["myviewstate"]); 優點: 操作簡單 被加密 可以在控件級別使用 缺點: 加密編碼增加了頁面的大小 增價了網絡傳輸 四:Querystrings QueryString常用于頁面傳值。很多瀏覽器都會有長度限制,一般在255個字節。值得注意的是,盡量使用Server.UrlEncode,來避免一些意外情況,如Sql注入。 stringproductid; productid=Request.Params["productid"] 服務端 一。Application Application在整個應用程序都是可見的,所有用戶分享同一個Application。在ASP中,常用來存放鏈接字符串。 Application.Lock(); Application["mydata"]="mydata"; Application.UnLock(); 二。Session Session為每個用戶單獨存儲用戶信息。Session有三種存放方式。"inproc","sqlserver","stateserver。 InProc,數據保存在服務端進程中。由于目前有600M的內存限制,可以導致進程重啟,而失去所有的狀態信息。 SqlServer,存放與數據庫之中,用戶狀態可以永久保留。 StateServer,存放與另一臺狀態服務器中。 Session["UserId"]="UserId"; stringUserId=Session["UserId"].ToString();  
上一篇:※沈陽電腦維修※匯編語言超濃縮教程
下一篇:怎樣自制打印機驅動程序安裝盤
查看[編程高手 ASP.NET 狀態管理 ]所有評論
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
用戶名: 驗證碼:
關于我們 服務價格 聯系我們 企業網站優化 沈陽網站建設 沈陽維修電腦
30选5开奖号码