先介紹一下比較簡單的使用方法:
給COOKIES賦值
復(fù)制代碼 代碼如下:
Response.Cookies["uid"].Value = "20";
Response.Cookies["LoginCode"].Value = "58469";
以上就是分別對兩個(gè)COOKIES變量賦了兩個(gè)不同的傳,那么在使用COOKIES時(shí),我們怎樣來控制COOKIES的有效期呢,看下面:
復(fù)制代碼 代碼如下:
Response.Cookies["uid"].Expires = DateTime.Now.AddDays(1);
Response.Cookies["LoginCode"].Expires = DateTime.Now.AddDays(1);
上面是分別對兩個(gè)變量的有效期的1天,當(dāng)然也是幾小時(shí),方法如下:
復(fù)制代碼 代碼如下:
Response.Cookies["LoginCode"].Expires =DateTime.Now.AddHours(1);
這是有效期為1小時(shí),同樣的方法可以類推成幾分鐘,幾秒等等。
那我們?nèi)绾潍@得這些COOKIES的值呢?這里要注意一點(diǎn),在COOKIES沒有被賦值時(shí),你要調(diào)用就會出錯(cuò),所以我們一般在調(diào)用之前會先判斷一下,此COOKIES是否存在,方法:
復(fù)制代碼 代碼如下:
if (Request.Cookies["uid"] != null)
{
string ruid = Request.Cookies["uid"].Value;
}
在.NET里獨(dú)有的賦值方法:
復(fù)制代碼 代碼如下:
System.Web.HttpCookie user_cookies_id=new HttpCookie("uid");
user_cookies_id.Value="20";
user_cookies_id.Expires=DateTime.Now.AddDays(1);
Response.AppendCookie(user_cookies_id);
--------------------------------
HttpCooKie acookie=new Httpcookie("lastvisitcounter");
acookie.value=lastvisitcounter.ToString();
acookie.Expires=DateTime.MaxValue;
Response.Cookie.Add(acookie);
if(Request.Cookies["lastvisitcounter"]==null)
{
textbox1.text="1";
}
else
{
HttpCookie acookie=request.Cookies["lastvisitcounter"];
textbox1.text=server.HtmiEncode(acookie.value);
}
session的使用
session("username")="aa" 寫入
username=session("username") 讀取
Session即會話,是指一個(gè)用戶在一段時(shí)間內(nèi)對某一個(gè)站點(diǎn)的一次訪問。
Session對象在.NET中對應(yīng)HttpSessionState類,表示“會話狀態(tài)”,可以保存與當(dāng)前用戶會話相關(guān)的信息。
Session對象用于存儲從一個(gè)用戶開始訪問某個(gè)特定的aspx的頁面起,到用戶離開為止,特定的用戶會話所需要的信息。用戶在應(yīng)用程序的頁面切換時(shí),Session對象的變量不會被清除。
對于一個(gè)Web應(yīng)用程序而言,所有用戶訪問到的Application對象的內(nèi)容是完全一樣的;而不同用戶會話訪問到的Session對象的內(nèi)容則各不相同。
Session可以保存變量,該變量只能供一個(gè)用戶使用,也就是說,每一個(gè)網(wǎng)頁瀏覽者都有自己的Session對象變量,即Session對象具有唯一性。
(1)將新的項(xiàng)添加到會話狀態(tài)中
語法格式為:
Session ("鍵名") = 值 或者 Session.Add( "鍵名" , 值)
(2)按名稱獲取會話狀態(tài)中的值
語法格式為: 變量 = Session ("鍵名") 或者 變量 = Session.Item("鍵名")
(3)刪除會話狀態(tài)集合中的項(xiàng)
語法格式為: Session.Remove("鍵名")
(4)清除會話狀態(tài)中的所有值
語法格式為: Session.RemoveAll() 或者 Session.Clear()
(5)取消當(dāng)前會話
語法格式為: Session.Abandon()
(6)設(shè)置會話狀態(tài)的超時(shí)期限,以分鐘為單位。
語法格式為: Session.TimeOut = 數(shù)值
Global.asax 文件中有2個(gè)事件應(yīng)用于Session對象
事件名稱 說明
Session_Start 在會話啟動時(shí)激發(fā)
Session_End 在會話結(jié)束時(shí)激發(fā)
.net 中的session與cookies
Session又稱為會話狀態(tài),是Web系統(tǒng)中最常用的狀態(tài),用于維護(hù)和當(dāng)前瀏覽器實(shí)例相關(guān)的一些信息。HTTP 是一種無狀態(tài)協(xié)議。這意味著 Web 服務(wù)器會將針對頁面的每個(gè) HTTP 請求作為獨(dú)立的請求進(jìn)行處理。服務(wù)器不會保留以前的請求過程中所使用的變量值的任何信息。ASP.NET 會話狀態(tài)將來自限定時(shí)間范圍內(nèi)的同一瀏覽器的請求標(biāo)識為一個(gè)會話,當(dāng)每個(gè)用戶首次與這臺WWW服務(wù)器建立連接時(shí),他就與這個(gè)服務(wù)器建立了一個(gè)Session,同時(shí)服務(wù)器會自動為其分配一個(gè)SessionID,用以標(biāo)識這個(gè)用戶的唯一身份。
舉個(gè)例子來說,我們可以把已登錄用戶的用戶名放在Session中,這樣就能通過判斷Session中的某個(gè)Key來判斷用戶是否登錄,如果登錄的話用戶名又是多少。
Cookies
cookie 是一小段文本信息,伴隨用戶請求,在web服務(wù)器和瀏覽器之間傳遞。用戶每次訪問站點(diǎn)的時(shí)候,
web應(yīng)用程序都可以讀取cookie包含的信息。
假設(shè)在用戶請求您的網(wǎng)站的某個(gè)頁面時(shí),您的應(yīng)用程序不僅是返回請求的頁面。同時(shí)也返回一個(gè)包含日期
和時(shí)間的cookie。用戶的瀏覽器在獲得頁面的同時(shí)也獲得了cookie.并且cookie保存在客戶端的cookie文件夾中。
指定cookie的名字和要保存的值??梢詣?chuàng)建多個(gè),但每個(gè)cookie的名字必須唯一,以便日后取值時(shí)識別。(cookie是按名字儲存的,要?jiǎng)?chuàng)建兩個(gè)名稱相同的cookie,那么最后那個(gè)cookie將覆蓋前一個(gè)。)同時(shí)可以給cookie指定過期日期和時(shí)間.cookie是寫入到用戶硬盤上的,然后可能一直都留在磁盤上。因此,指定cookie的過期日期和時(shí)間。當(dāng)用戶下次訪問站點(diǎn)的時(shí)候,瀏覽器會先檢查您站點(diǎn)的所有cookie,如果某個(gè)cookie已經(jīng)過期,瀏覽器不會把這個(gè)cookie隨頁面請求一起發(fā)送給服務(wù)器,而是刪除。
cookie 和session 的區(qū)別:
1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙
考慮到安全應(yīng)當(dāng)使用session
3、session會在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會比較占用你服務(wù)器的性能
考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE
4、單個(gè)cookie在客戶端的限制是3K,就是說一個(gè)站點(diǎn)在客戶端存放的COOKIE不能3K。
您可能感興趣的文章:- 淺談cookie 和session 的區(qū)別
- 關(guān)于session和cookie的簡單理解
- 新手菜鳥必讀:session與cookie的區(qū)別
- 詳解PHP中cookie和session的區(qū)別及cookie和session用法小結(jié)
- PHP中cookie和session的區(qū)別實(shí)例分析
- 老生常談Session和Cookie之間區(qū)別與聯(lián)系(必看篇)