0

我面临一个关于 cookie 的奇怪问题:我试图在用户第一次登录应用程序时使用用户 ID 设置一个 cookie,下一次,如果 cookie 存在,则不需要再次进行用户身份验证。

为此,我使用以下代码:

  • 设置 cookie:

    HttpCookie userCookie = new HttpCookie("UserCookie");
    userCookie.Value = UserId.ToString();
    userCookie.Expires = DateTime.Now.AddHours(1);
    System.Web.HttpContext.Current.Response.Cookies.Add(userCookie);
    
  • 获取 cookie:

    HttpCookie UserCookie = System.Web.HttpContext.Current.Request.Cookies["UserCookie"];
    if (UserCookie != null)
    {
          // redirect the user to another screen inside the application
    } 
    

奇怪的是,我的 cookie 似乎不存在,并且一直提示用户登录屏幕。当我尝试使用调试时,在我看来 cookie 不为空,但它有一个空字符串值。我能做些什么呢?

非常感谢!

4

1 回答 1

1

您是否尝试在设置 cookie 的相同代码中获取 cookie?如果是这样,cookie 将不存在。页面交付后,Cookie 在用户浏览器上设置。

另外,您能否确认UserID.ToString()它实际上不是一个空字符串..?

要正确测试,请在页面 A 上设置 cookie,然后重定向到页面 B 并在此处获取 cookie。

于 2013-04-12T13:42:14.560 回答