日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分享一下cookies操作(增、删、改、查)小经验

發布時間:2025/3/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分享一下cookies操作(增、删、改、查)小经验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

?

前段時間在做一個?SSO(Single Sign On),用cookies去存Token

?

網站保存用戶信息這類都用的cookies

?

以前覺得cookies操作無非就那么幾種,但是“杯具事件”還是很多的

?

下面分享一下對cookies的簡單操作

?

-----------------------------------------------------操作-----------------------------------------------------------

1.添加cookies(用cookies方式去做sso,用戶信息保存,修改都會依賴cookies)

#region##添加cookeis
///<summary>
/// 添加cookeis
///</summary>
public void AddCookies()
{

HttpCookie cookies = new HttpCookie("Porschev");
cookies["name"] = "Zhong Wei";
cookies["sex"] = "1";
cookies.Expires = DateTime.Now.AddMinutes(20);
Response.Cookies.Add(cookies);

}
#endregion

?

添加cookies一般不會有人出錯的。。。記得添加Expires就行

?

2.修改cookies( 在程序中難免會操作,對用戶信息的修改,更新數據庫后,也會修改cookies,為了修改后的顯示)

方法一:

#region##修改cookies
///<summary>
/// 修改cookies
///</summary>
public void ModCookies()
{

HttpCookie cookies = Request.Cookies["Porschev"];
cookies["name"] = "wilson Z";

}
#endregion

新建個測式頁。。再取cookies中的name,結果:wilson Z;

?

這是這次項目中遇到的“杯具”事件之一,當這樣修改cookies時,在更新方法中再取這個名為Porschev的cookies,

?

name的值還為Zhong Wei而非wilson Z,頁面顯示也不對(己排除頁面緩存原因,更新也確實沒有成功)

?

修改方法一:

#region##修改cookies
///<summary>
/// 修改cookies
///</summary>
public void ModCookies()
{

HttpCookie cookies = Request.Cookies["Porschev"];
cookies["name"] = "wilson Z";
//加上下面一句
Response.Cookies["Porschev"].Expires = DateTime.Now.AddMinutes(-1);

}
#endregion

再次測式,結果正確,取出name的值為:wilson Z,頁面顯示也正確

?

自己理解:得讓以前存入過期時間為20min的cookies失效

?

3.得到cookies?(這個最簡單,為求方法完整,還是寫上吧)

#region##得到cookies
///<summary>
/// 得到cookies
///</summary>
public void GetCookies()
{

HttpCookie cookies = Request.Cookies["Porschev"];
string name = cookies["name"]; //通過key取出對應value,多key同理取

}
#endregion

?

?

4.刪除cookies?(刪除cookies網上有很多方法,但是刪除不是都能管用)

方法一:(最常用的一個刪除cookies方法)

#region##刪除cookies
///<summary>
/// 刪除cookies
///</summary>
public void DelCookeis()
{

if (Request.Cookies["Porschev"] != null)
{
HttpCookie cookies = new HttpCookie("Porschev");
cookies.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(cookies);
}

}
#endregion

在項目中測式,刪除部分cookies失敗,很無語,于是換一種方法

?

#region##刪除cookies
///<summary>
/// 刪除cookies
///</summary>
public void DelCookeis()
{

foreach (string cookiename in Request.Cookies.AllKeys)
{
HttpCookie cookies = Request.Cookies[cookiename];
if (cookies != null)
{
cookies.Expires = DateTime.Today.AddDays(-1);
Response.Cookies.Add(cookies);
Request.Cookies.Remove(cookiename);
}
}

}
#endregion

測式:刪除成功

自己理解:方法一只能刪除提當前Response中的cookies,不對完成刪除掉客端的cookies,用遍歷cookies的方式可以

?

?

方法一定對,己經過項目實際驗證,觀點不一定正確,如理解有誤,請各位指正!!



?



?

?

總結

以上是生活随笔為你收集整理的分享一下cookies操作(增、删、改、查)小经验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。