編程高手 ASP.NET 狀態(tài)管理_.Net教程
推薦:讓ASP.NET程序自動(dòng)為URL加上超級(jí)鏈接作為一個(gè)程序員,在完成設(shè)計(jì)后還要根據(jù)程序的情況以及用戶的反映不斷對(duì)程序進(jìn)行改進(jìn),這樣才能不斷地完善自己的作品。我在制作完軟件商務(wù)網(wǎng) 的論壇后,發(fā)現(xiàn)人們總喜歡在帖子中加上各種有用的URL
一般而言,HTTP協(xié)議是非狀態(tài)服務(wù),它不保存任何用戶請(qǐng)求信息。直至NetScape開始使用Cookies來保存用戶請(qǐng)求信息,Web應(yīng)用程序有了極大的發(fā)展�,F(xiàn)在ASP.NET程序員可以使用很多種方式來保存用戶請(qǐng)求信息。
下面主要介紹ASP.NET關(guān)于狀態(tài)管理的幾種方式。
客戶端
ASP.NET,提供了Cookies, QueryStrings (URL), Hidden fields, View State and Control state (ASP.NET 2.0),來管理客戶端請(qǐng)求。
一。Cookie
Cookie是以文本存儲(chǔ)于計(jì)算機(jī)中,使用name-value匹配。一般用戶存儲(chǔ)標(biāo)識(shí)用戶信息,如:用戶名,用戶使用配置等。雖然Cookie可以被加密存儲(chǔ),但不推薦在Cookie中保存用戶密碼。第二,Cookie的大小是限定的,所以不適合存儲(chǔ)大型數(shù)據(jù)。
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!"; |
| Response.Cookies["UserId"].Value=username; |
使用簡(jiǎn)單
缺點(diǎn):
1�?蛻舳丝梢越肅ookie
2。Cookie在每次請(qǐng)求或發(fā)送時(shí)都會(huì)被加載,影響傳輸。
3。易被攻破,所有不適合存儲(chǔ)安全信息。
二。Hidden fields(隱藏控件)
Hidden field是在頁(yè)面級(jí)保存信息。與其他用戶標(biāo)準(zhǔn)控件的區(qū)別是,Hidden Field不被呈現(xiàn)在頁(yè)面中。當(dāng)頁(yè)面提交的時(shí)候,Hidden Field中的值將被一同發(fā)送給服務(wù)端。雖有在ASP.NET 2.0中,我們可以使用ViewState來代替,但Hidden Fields依然可以用來存放一些不關(guān)鍵信息。
|
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; |
優(yōu)點(diǎn):
1。使用簡(jiǎn)單
2�?梢源鎯�(chǔ)少量數(shù)據(jù)
缺點(diǎn):
1。不安全,以明文的形式直接從網(wǎng)絡(luò)傳輸
三。View State(狀態(tài)視圖)
狀態(tài)視圖ViewSate,可以用來為單獨(dú)用戶存儲(chǔ)信息。你可以通過設(shè)置EnableViewState屬性來控制ViewState的使用,在默認(rèn)的情況下屬性值為True。ViewSate在每次用戶請(qǐng)求或服務(wù)端響應(yīng)時(shí),都會(huì)被傳輸。所以,為了減少網(wǎng)絡(luò)帶寬的使用,可以在不需要狀態(tài)視圖時(shí)設(shè)置EnableViewState屬性值為False。ViewSate在頁(yè)面中的存儲(chǔ)是經(jīng)過Base64轉(zhuǎn)碼的,增加了額外的數(shù)據(jù)量,所以一定要注意保存較少的ViewSate。
分享:用ASP.Net實(shí)現(xiàn)在線壓縮和解壓縮我們經(jīng)常會(huì)遇到批量上傳的問題,也會(huì)遇到將某個(gè)目錄下所有文件都上傳到服務(wù)器上的問題。那么,如何解決此類問題呢?以前的技術(shù)一般采用ActiveX等方式,這里筆者采用SharpZlib來實(shí)現(xiàn),聽說VS2005
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- c#對(duì)PL/SQL查詢結(jié)果列復(fù)制的結(jié)果生成指定格式
- 解析asp.net下web控件點(diǎn)評(píng)
- .net全局定時(shí)定期執(zhí)行某些操作在Global.asax中具體實(shí)現(xiàn)
- Google免費(fèi)的SVN服務(wù)器管理VS2010代碼
- 解析利用wsdl.exe生成webservice代理類的詳解
- 解決.net framework 4.0環(huán)境下遇到版本不同編譯不通過的方法詳解
- asp.net網(wǎng)站RSS功能實(shí)例代碼
- 編程技巧 用Asp.net動(dòng)態(tài)生成html頁(yè)面
- 基于C#的接口基礎(chǔ)教程之一
- ASP.NET網(wǎng)站開發(fā)的架構(gòu)設(shè)計(jì)
- 相關(guān)鏈接:
- 教程說明:
.Net教程-編程高手 ASP.NET 狀態(tài)管理
。