找到相关的cookie,然后修改它为过期,然后执行重要的一步
Response.Cookies.Add(aCookie);
出处:http://www.webyj.net/News_View.aspx?id=7
为什么在这一个页面清掉了cookie,但别的页面仍可以读出.代码如下:
login.aspx:
HttpCookie cookie = new HttpCookie("UserID")+Response.Cookies.Add(cookie)创建一个名为"UserID"的cookie,通过这个页面的一个文字链接转至loginout.aspx页,这个页面进入即运行下面的代码,
loginout.aspx:
Request.Cookies.Clear()并通过if语包判断Request.Cookies["UserID"] ==null条也成立.问题就是重新回到login.aspx页时,重新判断这个条件却是不成立的了,而出可以读出cookie值来.(问题都出在没有关闭浏览器的情况,关闭浏览器后再开就没有问题了.)
请问高手们,这个问题应该如何解决??????????????????????????????/
在线等,谢谢!!!
问题补充:
高手不行啊!请看看这个删除cookier代码 HttpCookie cookie = new HttpCookie("UserID"); cookie.Expires = DateTime.Now.AddDays(-100); Request.Cookies.Add(cookie); Request.Cookies.Remove("UserName"); HttpCookie aCookie; string cookieName; int limit = Request.Cookies.Count; Request.Cookies.Clear(); if (Request.Cookies["UserID"] == null || Request.Cookies["UserName"] == null) { Response.Redirect(“index.aspx”); } else { } 而在login的状态里的条件仍旧不成立. protected void Page_Load(object sender, EventArgs e) { loginText.Text = " 会员请这里登陆"; if (Request.Cookies["UserID"] != null || Request.Cookies["UserName"] != null) { //用户已登陆的情况 leftlogin.Controls.Clear();} else { //用户没有登陆 loginand.Controls.Clear(); } } 无伦如何注消,二楼所说的也试过.结果一样,只有关闭游览器方可达没有"用户注消"的功能.
最佳答案
Request.Cookies.Clear()这个方法并不是删除Cookie 删除 Cookie(即从用户的硬盘中物理移除 Cookie)是修改 Cookie 的一种形式。 由于 Cookie 在用户的计算机中,因此无法将其直接移除。 但是,可以让浏览器来为您删除 Cookie。 该技术是创建一个与要删除的 Cookie 同名的新 Cookie, 并将该 Cookie 的到期日期设置为早于当前日期的某个日期。 当浏览器检查 Cookie 的到期日期时,浏览器便会丢弃这个现已过期的 Cookie。 下面的代码示例演示删除应用程序中所有可用 Cookie 的一种方法: HttpCookie aCookie; string cookieName; int limit = Request.Cookies.Count; for (int i = 0; i < limit; i++) { cookieName = Request.Cookies[i].Name; aCookie = new HttpCookie(cookieName); aCookie.Expires = DateTime.Now.AddDays(-1); Response.Cookies.Add(aCookie); }