ASP.NET對Cookie的操作
概述
Cookie用來保存客戶瀏覽器請求服務(wù)器頁面的請求信息。
我們可以存放非敏感的用戶信息,保存時間可以根據(jù)需要設(shè)置。如果沒有設(shè)置Cookie失效日期,它的生命周期保存到關(guān)閉瀏覽器為止,Cookie對象的Expires屬性設(shè)置為MinValue表示永不過期。
Cookie存儲的數(shù)據(jù)量受限制,大多數(shù)的瀏覽器為4K因此不要存放大數(shù)據(jù)。
由于并非所有的瀏覽器都支持Cookie,數(shù)據(jù)將以明文的形式保存在客戶端。
一、創(chuàng)建Cookie:發(fā)送到客戶端瀏覽器
Domain和Path相同的所有Cookie在客戶端存在于一個文件中。
//通用設(shè)置 Response.Cookies["userName"].Value = "Park"; Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1);//不設(shè)Expires默認關(guān)閉瀏覽器就過期 Response.Cookies["userName"].Domain = "park.aa.com";//Domain默認為域名部分,以表示aa.com下的所有子域名。 Response.Cookies["userName"].Path = "App1";//Path默認為根目錄"/",表示根目錄下的所有頁面和子目錄 //單值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是無法讀取的
if (Request.Cookies["userName"] != null) { //讀取多值Cookie Response.Write(Request.Cookies["userName"].Value) //可以Server.HtmlEncode()編碼 //讀取多值Cookie Response.Write("Cookie中鍵值為userid的值:" + Request.Cookies["userName"]["sex"]); }
三、修改Cookie
不能直接修改一個Cookie,是創(chuàng)建一個同名的Cookie,并把該Cookie發(fā)送到瀏覽器覆蓋客戶機上的舊Cookie。
HttpCookie cok = Request.Cookies["userName"];//獲取客戶端的Cookie對象 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:
無法直接刪除一個Cookie,可通過修改它的Expires為過去的某個時間,瀏覽器會刪除已經(jīng)過期的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);//刪除整個Cookie,只要把過期時間設(shè)置為現(xiàn)在 } Response.AppendCookie(cok); }
到此這篇關(guān)于ASP.NET操作Cookie的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp.net mvc路由篇 如何找到 IHttpHandler方法介紹
學(xué)習(xí)是使用asp.net已經(jīng)有很長一段時間了,現(xiàn)在就來分析一下mvc的整過過程吧。個人計劃寫一個mvc系列的博文,僅從源代碼的角度來分析mvc。在接觸mvc時我們一定會經(jīng)歷路由,那么路由這東東是怎么搞出來的啊2012-11-11ASP.NET Core MVC 依賴注入View與Controller
本文重點給大家介紹的是ASP.NET Core MVC 之依賴注入 View 和ASP.NET Core MVC 之依賴注入 Controller的相關(guān)資料,需要的小伙伴可以參考下面文章具體內(nèi)容2021-09-09在 ASP.NET Core 中自動啟用 CAP 事務(wù)詳情
本篇文章旨在描述如何在 ASP.NET Core項目中并以一種簡便的方式啟用CAP事務(wù),因為在我們的示例中都是直接演示比較直觀的方式,沒有進行封裝,有些初學(xué)者同學(xué)不太會,找到問我如何封裝,本篇文章主要基于 Entity Framework 來進行演示2021-10-10ASP.NET MVC Web API HttpClient簡介
依稀還記得那個時候用WebClient,HttpWebRequest來發(fā)送一個請求,現(xiàn)在ASP.NET MVC4中自帶了一個類HttpClient;需要的朋友可以參考下2012-11-11