溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ASP.NET對(duì)Cookie的操作方法有哪些

發(fā)布時(shí)間:2022-05-13 13:56:37 來(lái)源:億速云 閱讀:193 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“ASP.NET對(duì)Cookie的操作方法有哪些”,在日常操作中,相信很多人在ASP.NET對(duì)Cookie的操作方法有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”ASP.NET對(duì)Cookie的操作方法有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

概述

Cookie用來(lái)保存客戶瀏覽器請(qǐng)求服務(wù)器頁(yè)面的請(qǐng)求信息。

我們可以存放非敏感的用戶信息,保存時(shí)間可以根據(jù)需要設(shè)置。如果沒有設(shè)置Cookie失效日期,它的生命周期保存到關(guān)閉瀏覽器為止,Cookie對(duì)象的Expires屬性設(shè)置為MinValue表示永不過(guò)期。

Cookie存儲(chǔ)的數(shù)據(jù)量受限制,大多數(shù)的瀏覽器為4K因此不要存放大數(shù)據(jù)。

由于并非所有的瀏覽器都支持Cookie,數(shù)據(jù)將以明文的形式保存在客戶端。

一、創(chuàng)建Cookie:發(fā)送到客戶端瀏覽器

Domain和Path相同的所有Cookie在客戶端存在于一個(gè)文件中。

//通用設(shè)置
Response.Cookies["userName"].Value = "Park";
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1);//不設(shè)Expires默認(rèn)關(guān)閉瀏覽器就過(guò)期
Response.Cookies["userName"].Domain = "park.aa.com";//Domain默認(rèn)為域名部分,以表示aa.com下的所有子域名。
Response.Cookies["userName"].Path = "App1";//Path默認(rèn)為根目錄"/",表示根目錄下的所有頁(yè)面和子目錄

//單值Cookie
HttpCookie Cookie = new HttpCookie("userName");
cookie.Value = "Park";
cookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(cookie);

//多值Cookie
HttpCookie cookies = new HttpCookie("userName");
cookies["name"] = "Park";
cookies["sex"] = "1";
cookies.Expires = DateTime.Now.AddMinutes(20);
Response.Cookies.Add(cookies);
//Response.SetCookies(cookies)
//Response.AppendCookis(cookies);

二、讀取Cookie:

Domain、Path和Expires是無(wú)法讀取的

if (Request.Cookies["userName"] != null)
{
    //讀取多值Cookie
    Response.Write(Request.Cookies["userName"].Value) //可以Server.HtmlEncode()編碼
   //讀取多值Cookie
    Response.Write("Cookie中鍵值為userid的值:" + Request.Cookies["userName"]["sex"]);
}

三、修改Cookie

不能直接修改一個(gè)Cookie,是創(chuàng)建一個(gè)同名的Cookie,并把該Cookie發(fā)送到瀏覽器覆蓋客戶機(jī)上的舊Cookie。

HttpCookie cok = Request.Cookies["userName"];//獲取客戶端的Cookie對(duì)象
if (cok != null)
{
    cok.Values["userid"] = "alter-value";//修改Cookie        
    cok.Values.Set("newid", "newValue");//往Cookie里加入新的內(nèi)容
    Response.AppendCookie(cok);

    //或者
    Response.Cookies["userName"].Value = "aa";
}
 
Response.Cookies["Porschev"].Expires = DateTime.Now.AddMinutes(-1);

四、刪除Cookie:

無(wú)法直接刪除一個(gè)Cookie,可通過(guò)修改它的Expires為過(guò)去的某個(gè)時(shí)間,瀏覽器會(huì)刪除已經(jīng)過(guò)期的Cookie。

Response.Cookies["userName"].Expires = DateTime.Now.AddDays(-1);

//或者
HttpCookie cok = Request.Cookies["userName"];
if (cok != null)
{
    if (!CheckBox1.Checked)
    {
        cok.Values.Remove("userid");//移除鍵值為userid的值
    }
    else
    {
        TimeSpan ts = new TimeSpan(0, 0, 0, 0);
        cok.Expires = DateTime.Now.Add(ts);//刪除整個(gè)Cookie,只要把過(guò)期時(shí)間設(shè)置為現(xiàn)在
    }
    Response.AppendCookie(cok);
}

到此,關(guān)于“ASP.NET對(duì)Cookie的操作方法有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

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

AI