Cookie不被覆盖的问题

lovetaosha 2016-11-25 10:48:05
按照常识,同样的cookie key,先后改不 一样的值 ,后面的会覆盖掉前面的值 ,

但目前却没有改变,请大家帮忙分析分析


public static void EncodeCookie(string keyCookie, string valueCookie)
{
try
{
//先把之前的过期掉,否则容易出问题
//注意Remove并不能删除客户端的cookie,所以用时间做
//注意这里的改变并没有作用,这个必须先提交才起效
var expireCookie = HttpContext.Current.Request.Cookies[keyCookie];
if (expireCookie!=null)
{
expireCookie.Expires = DateTime.Now.AddDays(-1);
}

//后再添加
HttpContext.Current.Response.Cookies[keyCookie].Value = HttpUtility.UrlEncode(valueCookie);
HttpContext.Current.Response.Cookies[keyCookie].Expires = DateTime.Now.AddYears(3);
//如果不指定Path属性, 不同虚拟目录下Cookie无法共享
HttpContext.Current.Response.Cookies[keyCookie].Path = "/";
HttpContext.Current.Response.Cookies[keyCookie].Domain = ".52shpinche.cn";

WriteLog(string.Format("已经被入Cookie,keyCookie :{0},valueCookie: {1}" , keyCookie,valueCookie));
}
catch (Exception ex)
{
WriteLog(ex.ToString());
}
}


第一次: EncodeCookie(“ABCD”,“值1”); //log打印被记入了,读取时是 值1
第二次: EncodeCookie(“ABCD”,“值2”); //log打印被记入了,读取时是 还是 值1

很奇怪,理论是覆盖掉前面的啊
...全文
975 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_490824614 2021-07-23
  • 打赏
  • 举报
回复

最后怎么解决的

孟子E章 2016-11-26
  • 打赏
  • 举报
回复
使用Request.Cookies[key]读取 不使用Response.Cookies[key]. 否则,必须是发送到客户端,再次请求才是新的值
  • 打赏
  • 举报
回复
人家的注释写的很明白
//注意这里的改变并没有作用,这个必须先提交才起效
你可以去问问人家。
  • 打赏
  • 举报
回复
“第一次”过渡到“第二次”,你是如何设计测试行为的?如何测试?
tcmakebest 2016-11-25
  • 打赏
  • 举报
回复
第一次的值是如何设置的呢? 需要用到 .Domain 吗
lovetaosha 2016-11-25
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
人家的注释写的很明白
//注意这里的改变并没有作用,这个必须先提交才起效
你可以去问问人家。
注释是我自己写的,我知道没提交,所以不起效, 只是从常理上来说,同一个key, Cookies["ABCD"] =1; //第一次设置 Cookies["ABCD"] =2; //第二次设置 按理说,最后读出的值,应该是 2,但现在无论怎么改变值 ,最后得到都是 1

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧