2011-10-27 70 views
4

您能告诉我我在这里做错了什么。 为什么当我重新加载网页的Cookie数据不存储:asp.net cookie未保存

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     // it is always null !!!!    
     if (Response.Cookies["user_id"].Value != null) 
     { 
      //code never gets here 
     } 
    } 
} 

,这是用于存储的cookie(点击复选框后)的代码:

protected void CheckBoxRememberMe_Click(object sender, EventArgs e) 
{ 
    Response.Cookies["user_id"].Value = tbUserID.Text; 
    Response.Cookies["user_id"].Expires = DateTime.Now.AddDays(15); 
} 

所以我点击复选框,tbUserID文本框的值存储在HttpCookie中,然后我重新加载页面(刷新)并且值为空。

有什么想法?

+0

检查服务器日期/时间。此外,'Page_Load'将始终在'CheckBoxRememberMe_Click'之前执行,因此我只会在第二次加载页面后期待cookie(点击复选框后)。 – Oded

+0

正如我所提到的,我在刷新页面时检查Page_Load。所以我确定在读取该值之前调用该值的设置(在页面的第二次加载时)。 – Ranch

回答

8

在检查您想要发出请求的cookie而不是将cookie添加到响应时。

if (Request.Cookies["user_id"].Value != null) 
    { 
     //code should get here 
    } 
+0

就是这样!我应该使用Request.Cookies – Ranch