无法从cookie设置/获取值

时间:2011-01-26 18:53:49

标签: c# asp.net cookies

我有一个非常简单的页面,其中包含以下逻辑:

protected void Page_Load(object sender, EventArgs e)
{
    if (null == Response.Cookies["UserSettings"].Value)
    {
        HttpCookie cookie = new HttpCookie("UserSettings");
        cookie.Value = "The Big C";
        cookie.Expires = DateTime.Now.AddDays(10);
        Response.Cookies.Add(cookie);
    }
    else
    {
       // got here
    }
}

我在ifelse设置断点,else断点永远不会被击中。 if语句每次都会被命中。这可能有什么问题?

谢谢!

1 个答案:

答案 0 :(得分:5)

为什么要检查Response.Cookies您应该检查Request.Cookies。响应仍在创建中..

<强>更新

请参阅使用 HttpResponse.Cookies 集合添加 Cookie时,HttpRequest.Cookies集合中的Cookie立即可用即使响应尚未发送给客户端。 您正在检查Collection 中的Cookie,甚至在其添加之前。所以你需要在Request.Cookie Collection

中检查它