Chrome Cookie问题

时间:2010-12-30 14:33:01

标签: c# google-chrome

我通过“注销”按钮在注销页面内运行以下c#代码。 它在ie和ff上工作正常,但在chrome上没有。问题是chrome不会设置cookie。该值在响应标头中根本不显示。我已经在网上阅读了一些类似问题的报告,但没有提出适当的解决方案。任何帮助将非常感激。感谢您的时间。以下是在页面中运行的代码:

public class LogOut : ExtendedControlBase
    {
        void RemoveCookie(string CookieName)
        {
            HttpCookie myCookie = new HttpCookie(CookieName);
            myCookie.Expires = DateTime.Now.AddDays(-100);
            Response.Cookies.Add(myCookie);
        }
        protected override void  OnInit(EventArgs e)
        {
            Session.Remove("SiteUserEmail");
            Session.Remove("SiteUserName");
            Session.Remove("siteUserId");
            Session.Remove("siteUserGroupId");
            RemoveCookie("u");
            Response.StatusCode = 301;
            Response.AddHeader("Location", "/");
            Response.Flush();
            Response.End();
        }   
    }

2 个答案:

答案 0 :(得分:1)

一些建议:

尝试使用类似Fiddler的内容来查看究竟发生了什么。我的猜测实际上是“注销”链接无法按预期在Chrome上运行。

尝试手动设置Cookie标头:

Response.AddHeader("Set-Cookie", "u=; expires=Fri, 31-Dec-1999 23:59:59 GMT"); 

尝试设置测试标题以检查它们是否真的在线上:

Response.AddHeader("X-Testing", "Testing"); 

注意:我还没试过。我假设在Asp.Net中设置任意标题。

答案 1 :(得分:0)

我的猜测是,这是因为过去设定了过期日期。您是否尝试删除myCookie.Expires = DateTime.Now.AddDays(-100);?我相信它仍将被视为没有该值的会话cookie,因为将来不会设置到期日期。