2009-07-27 24 views
0

给你一个奇怪的问题。当读取尝试进行时cookie未被设置?

我创建了一个控件,它将一条记录插入数据库并将cookie写入用户的机器。这里是cookie写的代码片段:

protected void CreateCookie(Guid id, DateTime expires) 
{ 
    var oCookie = new HttpCookie("gsow"); 

    oCookie.Value = id.ToString(); 
    oCookie.Expires = expires; 

    HttpContext.Current.Response.Cookies.Add(oCookie); 
} 

很简单,没什么奇特的。该ID是从将条目写入数据库的函数传递的,并且该ID是即时生成的。现在这里是我的Cookie读取代码:

protected void Page_Load(object sender, EventArgs e) 
{ 

    var oCookie = HttpContext.Current.Response.Cookies["gsow"]; 

    output.Text = "I am Here<br />"; 

    if (oCookie != null) 
     output.Text += oCookie.Value; 
    else 
     output2.Text = "No Cookie."; 
} 

再次,非常简单。以下是我已经采取和重复多次的步骤:

  1. 创建,推出第一页的Cookie/DB项。
  2. 验证的Cookie/DB条目存在(他们在这一步,通过Chrome浏览器的cookie管理器选中)
  3. 启动第二页

一旦我加载了第二页,它应该吐出的ID我设置较早,cookie仍然存在,但它是Unset。

这里是cookie的截图后,我将第一页:

alt text

而且一旦我将第二页:从

alt text

所以,我所看到的,当我加载第二页时,cookie的值/到期将被删除。任何人有任何想法,为什么发生这种情况?

感谢

回答

3

据我所知,你应该使用检索请求的对象,而不是Response对象的cookie。

+2

大声笑我应该看到...谢谢:D – Anders 2009-07-27 17:35:01

相关问题