我有一个非常简单的页面,其逻辑如下:
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
}
}
我在 if
和 else
中都设置了一个断点,而 else
断点永远不会被击中。 if
语句每次都会被命中。这里可能出了什么问题?
谢谢!
最佳答案
为什么要检查 Response.Cookies
您应该检查 Request.Cookies
。仍在创建响应..
更新
看,当您使用 HttpResponse.Cookies 集合添加 cookie 时,该 cookie 会立即在 HttpRequest.Cookies 集合中可用 ,即使响应还没有发送到客户端。 但是您正在检查集合中的 cookie 甚至在添加之前。所以你需要在 Request.Cookie Collection 中检查它
关于c# - 无法设置/获取 cookie 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4808660/