婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP.NET之Response.Cookies.Remove 無法刪除COOKIE的原因

ASP.NET之Response.Cookies.Remove 無法刪除COOKIE的原因

熱門標簽:長春呼叫中心外呼系統哪家好 五常地圖標注 戶外地圖標注軟件手機哪個好用 凱立德導航官網地圖標注 智能電話營銷外呼系統 萊蕪外呼電銷機器人價格 電銷語音自動機器人 地圖標注和認領 鄭州400電話辦理 聯通

例子如下:

復制代碼 代碼如下:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        HttpCookie UserInfo = new HttpCookie("UserInfo");
        UserInfo.Value = "bdstjk";
        Response.Cookies.Add(UserInfo);
    }

}

protected void btnRemoveCookie_Click(object sender, EventArgs e)
{
    Response.Cookies.Remove("UserInfo");
    Response.Write("script type=\"text/javascript\">alert(\"刪除Cookie成功!\");/script>");
}

protected void btnCheckCookie_Click(object sender, EventArgs e)
{
    if (Request.Cookies["UserInfo"] != null)
    {
        Response.Write("Cookie存在,"+Request.Cookies["UserInfo"].Value);
    }
    else
    {
        Response.Write("Cookie不存在");
    }
}
 


頁面代碼:
復制代碼 代碼如下:

asp:Button ID="btnRemoveCookie" runat="server" Text="刪除Cookie"
             />
asp:Button ID="btnCheckCookie" runat="server" Text="檢查Cookie"
             />

運行代碼測試,你會發現,怎么點刪除按鈕,cookie都存在,如下圖:

 

這是為什么呢?明明是執行了刪除cookie的操作,為什么就是刪不掉呢?
我們去看看.NET的HttpCookieCollection實現源碼

復制代碼 代碼如下:

public void Remove(string name)
{
    if (this._response != null)
    {
        this._response.BeforeCookieCollectionChange();
    }
    this.RemoveCookie(name);
    if (this._response != null)
    {
        this._response.OnCookieCollectionChange();
    }
}


這個操作在HttpCookieCollection這個集合里面刪除了cookie,當服務器將數據傳輸到客戶端的時候,不會包含這個已經在服務端刪除了的Cookie的任何信息,瀏覽器也就不會對它做任何改變(remove方法只是不讓服務器向客戶機發送那個被刪除的cookie,與此cookie留不留在客戶機里無關)。所以cookie刪除不掉的情況就出現。
那么如果我們想刪除cookie應該怎么做呢?
把刪除cookie的代碼改成如下語句:
復制代碼 代碼如下:

if (Request.Cookies["UserInfo"] != null)
{
    Response.Cookies["UserInfo"].Expires = DateTime.Now.AddDays(-1);
}
Response.Write("script type=\"text/javascript\">alert(\"刪除Cookie成功!\");/script>");

我們再運行程序,測試:

好了。Cookie已經刪除。通過設置Cookie的過期時間為負,強制使Cookie過期。就能實現我們需要的效果了。

既然Response.Cookies.Remove沒有辦法實現我們需要的效果,為什么微軟還有留著呢,因為CookieCollection實現ICollection接口,romove是必須實現的方法,盡管它沒多大的實際價值。而集合的romove也應該是這樣的實現方式,只不過微軟在寫MSDN的時候,描述得太不清楚了,給我們造成了不小的麻煩。
您可能感興趣的文章:
  • 詳解在ASP.NET Core 中使用Cookie中間件
  • Asp.net中安全退出時清空Session或Cookie的實例代碼
  • ASP.NET中Cookie的使用方法
  • asp.net利用cookie保存用戶密碼實現自動登錄的方法
  • ASP.NET筆記之頁面跳轉、調試、form表單、viewstate、cookie的使用說明
  • ASP.NET Cookie是怎么生成的(推薦)

標簽:岳陽 紅河 福州 西藏 宣城 西寧 湖州 衢州

巨人網絡通訊聲明:本文標題《ASP.NET之Response.Cookies.Remove 無法刪除COOKIE的原因》,本文關鍵詞  ASP.NET,之,Response.Cookies.Remove,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET之Response.Cookies.Remove 無法刪除COOKIE的原因》相關的同類信息!
  • 本頁收集關于ASP.NET之Response.Cookies.Remove 無法刪除COOKIE的原因的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 达尔| 贡嘎县| 万山特区| 江达县| 榕江县| 冕宁县| 邵阳市| 乐亭县| 东乌| 台东县| 赫章县| 四平市| 谷城县| 新巴尔虎左旗| 泰和县| 通榆县| 济源市| 汤原县| 阿克| 西乌珠穆沁旗| 娄底市| 东兰县| 当阳市| 北海市| 高要市| 大邑县| 格尔木市| 肇州县| 辽宁省| 屏边| 富源县| 亚东县| 栾川县| 彩票| 十堰市| 临漳县| 图们市| 河南省| 郑州市| 高台县| 阿城市|