找到相關的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); }