Cookie的丑事 (2)

本文探讨了Cookie在浏览器中消失的原因,并提供了一种解决方案。通过调整Cookie的设置方式,确保其能够在预期的时间内保持有效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天终于弄清楚,为什么cookie总在关闭浏览器有消失了,原来还因为是弹出窗口冲突的问题。。。

都怪自己苯苯

 昨天的写法

 

if (Request.Cookies[Cookie.CCookieManage.COOKIE_TEMPUSERID] == null)
                    
{
                        Response.Cookies.Add(
new HttpCookie(Cookie.CCookieManage.COOKIE_TEMPUSERID));
                    }

                    Response.Cookies[Cookie.CCookieManage.COOKIE_TEMPUSERID].Domain 
= "buildbook.com.cn";

                  
//错误就在这里,不能这样直接设置时间
                    Response.Cookies[Cookie.CCookieManage.COOKIE_TEMPUSERID].Expires = DateTime.Now.AddDays (10);         //延长十天有效

                    UserID 
= Request.Cookies[Cookie.CCookieManage.COOKIE_TEMPUSERID].Value;
                    
//如果cookie不存在userid,生成临时用户名
                    if (string.IsNullOrEmpty(UserID))
                    
{
                        CMemberRule MemberRule 
= new CMemberRule();
                        UserID 
= MemberRule.GenerateTempUserName();
                        Response.Cookies[Cookie.CCookieManage.COOKIE_TEMPUSERID].Value 
= UserID;
                    }


 

修改后写法

 

 //添加cookie
                   HttpCookie TempUserCookie = new HttpCookie(Cookie.CCookieManage.COOKIE_TEMPUSERID);
                   TempUserCookie.Domain 
= "buildbook.com.cn";
                   TempUserCookie.Expires 
= DateTime.Now.AddDays(10);
                     
                   
if (Request.Cookies[Cookie.CCookieManage.COOKIE_TEMPUSERID] != null)
                   
{
                       UserID 
= Request.Cookies[Cookie.CCookieManage.COOKIE_TEMPUSERID].Value;
                       Response.Cookies.Remove(Cookie.CCookieManage.COOKIE_TEMPUSERID);
                   }

                   
//如果userid不存在,生成临时用户名
                   if (string.IsNullOrEmpty(UserID))
                   
{
                       CMemberRule MemberRule 
= new CMemberRule();
                       UserID 
= MemberRule.GenerateTempUserName();
                   }

                   TempUserCookie.Value 
= UserID;

                   
//添加cookie
                   TempUserCookie.Value = UserID;
                   Response.Cookies.Add(TempUserCookie);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值