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