当前位置:  开发笔记 > 编程语言 > 正文

清除Cookies不起作用?设置过期日期方法

如何解决《清除Cookies不起作用?设置过期日期方法》经验,为你挑选了1个好方法。

我正在调用以下代码:

protected void SetCookieValue(
    string sCookieName, object oValue, DateTime dtExpires)
{
    Response.Cookies[sCookieName].Value = Utility.ToStringValue(oValue);
    Response.Cookies[sCookieName].Expires = dtExpires;
    Response.Cookies.Add(Response.Cookies[sCookieName]);
}

日期设定为30天前:

SetCookieValue(sCookieName, null, DateTime.Now.AddDays(-30.0));

为了强制cookie过期.它正在开发我的开发箱(Windows 7,IIS7),但现在在IIS6上失败了.我没有更改此代码,它似乎已经工作了一年多,但在生产网站上,我无法清除此cookie.

IE8中的浏览器处于compat模式(用于命中开发和生产.

有任何想法吗?


感谢你在正确的方向上轻推.这是我最终得到的:

protected void SetCookieValue(
        string cookieName, object value, DateTime expireDate)
{
    HttpCookie cookie = new HttpCookie(cookieName);
    cookie.Value = Utility.ToStringValue(value);
    cookie.Expires = expireDate;

    if (Request.Cookies[cookieName] != null)
    {
        Response.SetCookie(cookie);
    }
    else
    {
        Response.Cookies.Add(cookie);
    }
}

因此,当我杀死一个cookie时,我会使用名称,空值和DateTime.MinValue到期日期来调用此方法.如果cookie存在,则会更新,如果不存在,则会在到期时添加.

我想使用相同的函数来创建或终止cookie,从而使它不受自己的DeleteCookie方法的影响.我还完全重命名了饼干,以确保我开始新鲜.我可能会对此进行一些用户反击,但是哎呀!:)

谢谢!答案被标记为让我朝着正确方向前进的人.



1> CMS..:

您应该从Request.Cookies中检索cookie ,然后将过期的cookie添加到Response.Cookies:

public void DeleteCookie(string cookieName)
{
    if (Request.Cookies[cookieName] != null)
    {
        HttpCookie myCookie = new HttpCookie(cookieName);
        myCookie.Expires = DateTime.Now.AddDays(-1d);
        Response.Cookies.Add(myCookie);
    }
}

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有