注消退出中对cookie操作的代码是什么?
HttpContext.Current.Response.Cookies[strGuid].Expires = DateTime.Now.AddDays(-1);
直接运行程序,操作没任何问题,我这个项目是用户在登录时可以自动选择自己的独立数据库,Cookie的key用的是guid,也就是说每次用户登录时,就会有一个全新的Guid,我就拿这个全新的Guid作为Cookie的key ,这个现象是最近我重装过一次系统,后才出现的,以前在我的电脑上无此现象不管理IE8还是IE9,且只在我的电脑上有这个现象,其他电脑上没有这个现象
@野狼一头:
用下面的代码试试:
HttpCookie cookie = Request.Cookies[strGuid]; if (cookie != null) { cookie.Expires = DateTime.Now.AddDays(-1); Response.Cookies.Set(cookie); }
@dudu:
补充说明一下,cookie集合中其他的cookie没丢,就只有那个key为guid的丢了,再页面回发的时候丢了
@dudu:
用了你的方法不行,
@野狼一头: 回发后检查一下Request.Cookies[strGuid]是否有值
@dudu:
初次启动程序回发时有值,用户注消切换数据库后回发就没值
kechee.kmdns.net/t6.web
就是这个地址的
也就是说,用户登录时生成一个Guid,然后我把这个Guid放到了地址栏中,并用这个Guid作为Cookie的key来存放
@dudu:
我用httpwatch跟过,在httpwatch里面看得到那个cookie
@dudu:
后来找到问题原因了,在这个项目中我总共有四个cookie,其中一个是用生成的guid作的cookie,这个guid作的key,主要用来效验登录用的,所以我在注销时,只写了:
1 HttpCookie cookie = Request.Cookies[strGuid]; 2 cookie.Expires = DateTime.Now.AddDay(-1); 3 Response.Cookies.Set(cookie);
上面这段,那么别外三个cookie没有清理,如果不是回发页面时,就不会发现问题,如果是回发页面那么出现问题的机率是100%,于是我在注消时,把另外三个固定key的cookie也一同注消了,问题就彻底解决了。
@野狼一头: 解决了就好