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

Cookie在ASP.net中失去价值

如何解决《Cookie在ASP.net中失去价值》经验,为你挑选了2个好方法。

我有以下代码设置cookie:

  string locale = ((DropDownList)this.LoginUser.FindControl("locale")).SelectedValue;
  HttpCookie cookie = new HttpCookie("localization",locale);
  cookie.Expires= DateTime.Now.AddYears(1);
  Response.Cookies.Set(cookie);

但是,当我尝试读取cookie时,Value为Null.cookie存在.如果检查我永远不会超过以下:

         if (Request.Cookies["localization"] != null && !string.IsNullOrEmpty(Request.Cookies["localization"].Value))

救命?



1> Aleris..:

检查是在回复后完成的吗?如果是这样,您应该从Request集合中读取cookie.

通过将cookie添加到Response.Cookies并将其从Request.Cookies读回来将cookie保留到浏览器.

添加到Response的cookie只有在页面位于同一请求时才能读取.



2> Chris Marisi..:

最有可能的答案可以在这篇文章中找到

当您尝试使用Response对象而不是Reqest检查cookie的存在时,ASP.net会自动创建一个cookie.

编辑:作为一个注释,我最终编写的软件需要检查ASP.NET是否因为他们的cookie API而成为一场噩梦.我最终编写了一个转换过程,该过程从请求中获取cookie并生成我的状态对象.在请求结束时,我将我的状态对象转换回cookie并将其填充到响应中(如果需要).这减轻了试图找出cookie是否在响应中,更新它们,避免创建无意义的cookie等.

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