Cookie失效在C#中无效
我试图使用C#4.0和这段代码制作一个持久性cookie: HttpCookie AssoCookie = new HttpCookie("AssociateCode",AssociateCode); AssoCookie.Expires = DateTime.Now.AddMonths(6); HttpContext.Current.Response.Cookies.Add(AssoCookie); 不幸的是,它不起作用,cookie会话到期.如果我在Firefox中使用Web Developer插件进行检查,我可以看到以下信息: Name AssociateCode Value test Host localhost Path / Secure No Expires At End Of Session 我正在做的cookie作为它刚刚在那里创建的测试,没有其他人管理它或编辑它所以它不能被覆盖.我没有在webconfig中设置任何设置cookie到期(无论如何这应该覆盖它),如果我设置一些cookie到期时间它不起作用. 我现在有点迷失,每个手册,教程,博客,无论我检查说你只需要设置过期日期,我已经调试过,我检查过它确实在创建时和Page_PreRender结束时有这个值,但它只是无论我做什么都会到期. 有任何想法吗? 我使用Firefox 9.0.1 btw. 更新 在Firefox中使用Firebug插件检查响应头我得到了这个: Response Headersview source Cache-Control private Connection Close Content-Length 21322 Content-Type text/html; charset=utf-8 Date Mon,23 Jan 2012 16:47:08 GMT Server ASP.NET Development Server/10.0.0.0 Set-Cookie AssociateCode=test; expires=Mon,23-Jul-2012 16:09:04 GMT; path=/ X-AspNet-Version 4.0.30319 使用Fiddler我得到了这个: HTTP/1.1 200 OK Cache-Control: private Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/7.5 X-AspNet-Version: 4.0.30319 Set-Cookie: AssociateCode=; expires=Mon,23-Jul-2012 16:27:29 GMT; path=/ X-Powered-By: ASP.NET Date: Mon,23 Jan 2012 17:27:29 GMT Content-Length: 21313 **更新2 ** try { AssociateCode = HttpContext.Current.Request.Cookies.Get("AssociateCode").Value; } catch { } 解决方法只是为了跟进我的评论:来自fiddler和firefox工具的信息表明您正在发送正确的信息来创建cookie. 这让我相信你错误地测试了它的存在. 在测试cookie是否传递给您的应用程序时,您应该使用Request.Cookies容器来查看它是否存在. (请注意,它是REQUEST而不是响应). 如果您使用以下内容进行测试: if (Response.Cookies["mycookie"] == null) { .. } 然后,这将导致在响应对象中创建一个空白的新cookie. 总结一下:Request对象将包含从浏览器发送的所有内容. Response对象是您发送到浏览器的所有内容. (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |