程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> .net中的session與cookies區別及使用方法

.net中的session與cookies區別及使用方法

編輯:ASP.NET基礎
先介紹一下比較簡單的使用方法
給COOKIES賦值
復制代碼 代碼如下:
Response.Cookies["uid"].Value = "20";
Response.Cookies["LoginCode"].Value = "58469";

以上就是分別對兩個COOKIES變量賦了兩個不同的傳,那麼在使用COOKIES時,我們怎樣來控制COOKIES的有效期呢,看下面: 
復制代碼 代碼如下:
Response.Cookies["uid"].Expires = DateTime.Now.AddDays(1);
Response.Cookies["LoginCode"].Expires = DateTime.Now.AddDays(1);

上面是分別對兩個變量的有效期的1天,當然也是幾小時,方法如下:
復制代碼 代碼如下:
Response.Cookies["LoginCode"].Expires =DateTime.Now.AddHours(1);

這是有效期為1小時,同樣的方法可以類推成幾分鐘,幾秒等等。
那我們如何獲得這些COOKIES的值呢?這裡要注意一點,在COOKIES沒有被賦值時,你要調用就會出錯,所以我們一般在調用之前會先判斷一下,此COOKIES是否存在,方法:
復制代碼 代碼如下:
if (Request.Cookies["uid"] != null)
{
string ruid = Request.Cookies["uid"].Value;
}

在.NET裡獨有的賦值方法
復制代碼 代碼如下:
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即會話,是指一個用戶在一段時間內對某一個站點的一次訪問。
Session對象在.NET中對應HttpSessionState類,表示“會話狀態”,可以保存與當前用戶會話相關的信息。
Session對象用於存儲從一個用戶開始訪問某個特定的aspx的頁面起,到用戶離開為止,特定的用戶會話所需要的信息。用戶在應用程序的頁面切換時,Session對象的變量不會被清除。

對於一個Web應用程序而言,所有用戶訪問到的Application對象的內容是完全一樣的;而不同用戶會話訪問到的Session對象的內容則各不相同。

Session可以保存變量,該變量只能供一個用戶使用,也就是說,每一個網頁浏覽者都有自己的Session對象變量,即Session對象具有唯一性。
(1)將新的項添加到會話狀態中
語法格式為:
Session ("鍵名") = 值 或者 Session.Add( "鍵名" , 值)
(2)按名稱獲取會話狀態中的值
語法格式為: 變量 = Session ("鍵名") 或者 變量 = Session.Item("鍵名")
(3)刪除會話狀態集合中的項
語法格式為: Session.Remove("鍵名")
(4)清除會話狀態中的所有值
語法格式為: Session.RemoveAll() 或者 Session.Clear()
(5)取消當前會話
語法格式為: Session.Abandon()
(6)設置會話狀態的超時期限,以分鐘為單位。
語法格式為: Session.TimeOut = 數值
Global.asax 文件中有2個事件應用於Session對象
事件名稱 說明
Session_Start 在會話啟動時激發
Session_End 在會話結束時激發

.net 中的session與cookies

Session又稱為會話狀態,是Web系統中最常用的狀態,用於維護和當前浏覽器實例相關的一些信息。HTTP 是一種無狀態協議。這意味著 Web 服務器會將針對頁面的每個 HTTP 請求作為獨立的請求進行處理。服務器不會保留以前的請求過程中所使用的變量值的任何信息。ASP.NET 會話狀態將來自限定時間范圍內的同一浏覽器的請求標識為一個會話,當每個用戶首次與這台WWW服務器建立連接時,他就與這個服務器建立了一個Session,同時服務器會自動為其分配一個SessionID,用以標識這個用戶的唯一身份。

舉個例子來說,我們可以把已登錄用戶的用戶名放在Session中,這樣就能通過判斷Session中的某個Key來判斷用戶是否登錄,如果登錄的話用戶名又是多少。

Cookies
cookie 是一小段文本信息,伴隨用戶請求,在web服務器和浏覽器之間傳遞。用戶每次訪問站點的時候,
web應用程序都可以讀取cookie包含的信息。

假設在用戶請求您的網站的某個頁面時,您的應用程序不僅是返回請求的頁面。同時也返回一個包含日期
和時間的cookie。用戶的浏覽器在獲得頁面的同時也獲得了cookie.並且cookie保存在客戶端的cookie文件夾中。

指定cookie的名字和要保存的值。可以創建多個,但每個cookie的名字必須唯一,以便日後取值時識別。(cookie是按名字儲存的,要創建兩個名稱相同的cookie,那麼最後那個cookie將覆蓋前一個。)同時可以給cookie指定過期日期和時間.cookie是寫入到用戶硬盤上的,然後可能一直都留在磁盤上。因此,指定cookie的過期日期和時間。當用戶下次訪問站點的時候,浏覽器會先檢查您站點的所有cookie,如果某個cookie已經過期,浏覽器不會把這個cookie隨頁面請求一起發送給服務器,而是刪除。

cookie 和session 的區別
1、cookie數據存放在客戶的浏覽器上,session數據放在服務器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙
考慮到安全應當使用session
3、session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能
考慮到減輕服務器性能方面,應當使用COOKIE
4、單個cookie在客戶端的限制是3K,就是說一個站點在客戶端存放的COOKIE不能3K。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved