-----------------------------------------------------操作-----------------------------------------------------------
1.添加cookies(用cookies方式去做sso,用戶信息保存,修改都會(huì)依賴cookies)
HttpCookie cookies = new HttpCookie("Porschev");
cookies["name"] = "Zhong Wei";
cookies["sex"] = "1";
cookies.Expires = DateTime.Now.AddMinutes(20);
Response.Cookies.Add(cookies);
}
#endregion
2.修改cookies( 在程序中難免會(huì)操作,對(duì)用戶信息的修改,更新數(shù)據(jù)庫(kù)后,也會(huì)修改cookies,為了修改后的顯示)
方法一:
HttpCookie cookies = Request.Cookies["Porschev"];
cookies["name"] = "wilson Z";
}
#endregion
這是這次項(xiàng)目中遇到的“杯具”事件之一,當(dāng)這樣修改cookies時(shí),在更新方法中再取這個(gè)名為Porschev的cookies,
name的值還為Zhong Wei而非wilson Z,頁(yè)面顯示也不對(duì)(己排除頁(yè)面緩存原因,更新也確實(shí)沒有成功)
修改方法一:
HttpCookie cookies = Request.Cookies["Porschev"];
cookies["name"] = "wilson Z";
//加上下面一句
Response.Cookies["Porschev"].Expires = DateTime.Now.AddMinutes(-1);
}
#endregion
自己理解:得讓以前存入過期時(shí)間為20min的cookies失效
3.得到cookies (這個(gè)最簡(jiǎn)單,為求方法完整,還是寫上吧)
HttpCookie cookies = Request.Cookies["Porschev"];
string name = cookies["name"]; //通過key取出對(duì)應(yīng)value,多key同理取
}
#endregion
方法一:(最常用的一個(gè)刪除cookies方法)
if (Request.Cookies["Porschev"] != null)
{
HttpCookie cookies = new HttpCookie("Porschev");
cookies.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(cookies);
}
}
#endregion
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
自己理解:方法一只能刪除提當(dāng)前Response中的cookies,不對(duì)完成刪除掉客端的cookies,用遍歷cookies的方式可以
方法一定對(duì),己經(jīng)過項(xiàng)目實(shí)際驗(yàn)證,觀點(diǎn)不一定正確,如理解有誤,請(qǐng)各位指正!!
新聞熱點(diǎn)
疑難解答
圖片精選