校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

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

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

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

例子如下:

復制代碼 代碼如下:

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"
             />

運行代碼測試,你會發(fā)現(xiàn),怎么點刪除按鈕,cookie都存在,如下圖:

 

這是為什么呢?明明是執(zhí)行了刪除cookie的操作,為什么就是刪不掉呢?
我們?nèi)タ纯?NET的HttpCookieCollection實現(xiàn)源碼

復制代碼 代碼如下:

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


這個操作在HttpCookieCollection這個集合里面刪除了cookie,當服務器將數(shù)據(jù)傳輸?shù)娇蛻舳说臅r候,不會包含這個已經(jīng)在服務端刪除了的Cookie的任何信息,瀏覽器也就不會對它做任何改變(remove方法只是不讓服務器向客戶機發(fā)送那個被刪除的cookie,與此cookie留不留在客戶機里無關)。所以cookie刪除不掉的情況就出現(xiàn)。
那么如果我們想刪除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已經(jīng)刪除。通過設置Cookie的過期時間為負,強制使Cookie過期。就能實現(xiàn)我們需要的效果了。

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

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

巨人網(wǎng)絡通訊聲明:本文標題《ASP.NET之Response.Cookies.Remove 無法刪除COOKIE的原因》,本文關鍵詞  ASP.NET,之,Response.Cookies.Remove,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET之Response.Cookies.Remove 無法刪除COOKIE的原因》相關的同類信息!
  • 本頁收集關于ASP.NET之Response.Cookies.Remove 無法刪除COOKIE的原因的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 鲁山县| 海安县| 盐源县| 新邵县| 珠海市| 历史| 垫江县| 安平县| 华坪县| 贵德县| 桃江县| 惠东县| 上饶市| 墨玉县| 商丘市| 柘城县| 文水县| 卫辉市| 阿鲁科尔沁旗| 资中县| 察哈| 新泰市| 微山县| 镇远县| 洪洞县| 盘锦市| 集安市| 沙湾县| 谷城县| 乾安县| 六安市| 都昌县| 开江县| 澎湖县| 南投县| 正宁县| 二手房| 张家界市| 龙游县| 松滋市| 澄迈县|