作者:手机用户2702934194 | 来源:互联网 | 2023-09-02 17:20
1.添加cookies(用cookies方式去做sso,用户信息保存,修改都会依赖cookies)复制代码代码如下:#region##添加cookeis<summary>
1.添加COOKIEs(用COOKIEs方式去做sso,用户信息保存,修改都会依赖COOKIEs)
代码如下:
#region##添加cookeis
///
/// 添加cookeis
///
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
///
/// 修改COOKIEs
///
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
///
/// 修改COOKIEs
///
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
///
/// 得到COOKIEs
///
public void GetCOOKIEs()
{
HttpCOOKIE COOKIEs = Request.COOKIEs["Porschev"];
string name = COOKIEs["name"]; //通过key取出对应value,多key同理取
}
#endregion
4.删除COOKIEs (删除COOKIEs网上有很多方法,但是删除不是都能管用)
方法一:(最常用的一个删除COOKIEs方法)
代码如下:
#region##删除COOKIEs
///
/// 删除COOKIEs
///
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
///
/// 删除COOKIEs
///
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的方式可以