如何让Cookie过期是大家经常讨论的问题。但是,下面的代码,这样Cookie会过期吗?
HttpCookie objCookie = Request.Cookies["CookieTest"];
objCookie.Expires = DateTime.Now.AddDays(-1);
objCookie.Values.Clear();
Response.Cookies.Set(objCookie);
Server.Transfer("WebForm1.aspx");
答案是不会过期。因为让Cookie过期是浏览器做的事。当在服务端设定某个Cookie过期时,必须回发客户端浏览器才能生效。以上的代码使用了Server.Transfer()方法。这种方法是直接在服务端跳转页面,再返回客户端。设置Cookie的过期并没有被客户端浏览器所执行。所以在这里必须使用Response.Redirect()方法。
Response.Redirect("WebForm1.aspx");