溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Cookie如何正確的在ASP.NET中使用

發(fā)布時間:2020-12-09 16:11:59 來源:億速云 閱讀:115 作者:Leah 欄目:開發(fā)技術

Cookie如何正確的在ASP.NET中使用 ?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

一、Cookie是什么

Cookie是一小段文本信息,存在客戶端硬盤上的長度不超過4KB的文本文件。
伴隨著用戶請求和頁面在Web服務器和瀏覽器之間傳遞
用戶每次訪問站點時,Web應用程序都可以讀取Cookie包含的信息。

二、工作原理

由于HTTP是一種無狀態(tài)的協(xié)議,服務器單從網絡連接上無從知道客戶身份。怎么辦呢?就給客戶端們頒發(fā)一個通行證吧,每人一個,無論誰訪問都必須攜帶自己通行證。這樣服務器就能從通行證上確認客戶身份了。這就是Cookie的工作原理。
Cookie實際上是一小段的文本信息。客戶端請求服務器,如果服務器需要記錄該用戶狀態(tài),就使用response向客戶端瀏覽器頒發(fā)一個Cookie??蛻舳藶g覽器會把Cookie保存起來。當瀏覽器再請求該網站時,瀏覽器把請求的網址連同該Cookie一同提交給服務器。服務器檢查該Cookie,以此來辨認用戶狀態(tài)。服務器還可以根據(jù)需要修改Cookie的內容。

 Cookie如何正確的在ASP.NET中使用

三、Cookie對象的屬性和方法
屬性:

(1).Name:獲取或設置Cookie的名稱
(2).Value:獲取或設置Cookie的值
(3).Expires:獲取或設置Cookie的過期時間
(4).Version:獲取或設置Cookie的符合HTTP維護狀態(tài)的版本

方法:
(1).Add:增加Cookie變量,將指定的cookie保存到Cookies集合中
(2).Clear:清除Cookie集合中變量
(3).Get:通過變量名或索引得到Cookie變量的值
(4).Remove:通過Cookie變量名或索引刪除Cookie對象

四、優(yōu)缺點

優(yōu)點:
相比Session和Application對象,使用Cookie能持久化保存用戶信息。Cookie保存在客戶端,而Session和Application保存在服務器端,故Cookie能長久保存。web應用程序可以通過獲取客戶端的Cookie來進行用戶身份認證。
Asp.net包含兩個Cookie集合,通過HttpRequest的Cookie集合進行訪問,Cookie不是Page類的子類,所以使用方法與Session和Application不同,相比于他們Cookie的優(yōu)點如下:
1.可以配置過期時間
2.簡單:Cookie是一種基于文本的輕量級結構,包括簡單的鍵值對
3.數(shù)據(jù)持久:因為保存到客戶端
4.無任何服務器資源:因為存儲在本地客戶端

缺點如下:
1.大小限制:
2.不確定性:可能用戶刪除Cookie或者禁用
3.安全風險:可偽造修改

五、注意什么?
[1].使用Cookie保存客戶端瀏覽器請求服務器頁面的請求信息時,保存時間的長短取決于Cookie對象的Expires屬性,可以根據(jù)需要來設置。若未設置Cookie的失效日期,則它們僅保存到關閉瀏覽器為止。若將Cookie對象的Expires屬性設置為DateTime.MaxValue,則表示Cookie永遠不會過期。

[2].Cookie存儲的數(shù)據(jù)量有所限制,大多數(shù)瀏覽器支持的最大容量為4096字節(jié),因此不要用Cookie來保存大量數(shù)據(jù)。

[3].  并非所有瀏覽器都支持Cookie,并且數(shù)據(jù)是以明文形式保存在客戶端計算機中,因此最好不要用Cookie來保存敏感的未加密數(shù)據(jù)。

[4].在ASP.NET中有兩個Cookies集合,即:Response對象的Cookies集合和Request對象的Cookies集合,但兩者的作用有所不同,通過前者可以將Cookie寫入客戶端,通過后者可以讀取存儲在客戶端的Cookie。
接下來講到Cookie的實際應用。

首先建立如圖所示的界面,通過該界面可登錄到某個網站,具體要求如下:

  •      在首次登錄后,將登錄信息寫入到用戶計算機的Cookie中;
  •      當再次登錄時,將用戶計算機中的Cookie信息讀出并顯示,以備用戶選擇使用;
  •      可以利用讀出Cookie中的信息來直接登錄網站。

Cookie如何正確的在ASP.NET中使用

操作步驟

1、在VS新建一個的空白的asp.net應用程序,在項目管理器中,添加一個Web窗體;使用一個2行3列的表格進行布局;布局結束后,將2個Label控件分別置于布局表格的左側,分別將其Text屬性設置為用戶名和密碼,在布局表格中添加兩個TextBox控件、一個Button控件和一個CheckBox控件,將Button控件的Text屬性設置為“登錄”,將CheckBox控件的Text屬性設置為“記住用戶名和密碼”。

2、添加一個HTML頁面

    將默認將名稱改為login.html

3、編寫事件處理代碼

<span >protected void Button1_Click(object sender, EventArgs e) 
    { 
 
      if (CheckBox1.Checked) 
      { 
        Response.Cookies["ID"].Expires = new DateTime(2016, 2, 24); //用鍵名為ID的Cookie設置生存時間 
        Response.Cookies["PW"].Expires = new DateTime(2016, 2, 24); 
        Response.Cookies["ID"].Value = TextBox1.Text; //將鍵名為ID的Cookie的值設置為文本框內容 
        Response.Cookies["PW"].Value = TextBox2.Text; 
      } 
      Response.Redirect("Login.html");  
 
    }</span>

首先判斷該頁面定義的Cookie是否為空,若不為空則將Cookie中的內容讀出并置于TextBox1和TextBox2兩個文本框中,這樣用戶在自己機器上第二次登錄同一個頁面時,直接單擊【登錄】按鈕即可,省掉了再次輸入用戶ID和密碼的過程

<span > protected void Page_Load(object sender, EventArgs e) 
    { 
      if (Request.Cookies["ID"] != null && Request.Cookies["PW"] != null) 
      { 
        TextBox1.Text = Request.Cookies["ID"].Value.ToString(); 
        TextBox2.Text = Request.Cookies["PW"].Value.ToString();//將鍵名為ID的Cookie的值讀出,并在文本框TextBox2中顯示出來 
      } 
 
    }</span> 

當再次加載頁面的時候就會出現(xiàn)如下圖所示。

 Cookie如何正確的在ASP.NET中使用

上面只是簡單的展示了幾個比較常見的功能(保留用戶個人信息,如姓名、密碼等,幫助用戶快速登錄網頁),還有很多未知的功能讓我們去探索
例如:

  •       保存用戶的個人愛好,設計者可根據(jù)Cookie中記錄的用戶愛好來設置網站的風格;
     
  •       進行在線購物時,記錄用戶購買的商品信息;
     
  •       記錄彈出窗口被彈出的狀況,一些頁面被打開時會彈出通知或廣告窗口,可以使用Cookie記錄窗口被彈出的情況,了解彈出窗口是否被彈出過,若被彈出過,再次打開頁面時就不再彈出該彈出窗口。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI