c# - 无法设置/获取 cookie 的值

标签 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 语句每次都会被命中。这里可能出了什么问题?

谢谢!

最佳答案

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

更新

看,当您使用 HttpResponse.Cookies 集合添加 cookie 时,该 cookie 会立即在 HttpRequest.Cookies 集合中可用 ,即使响应还没有发送到客户端。 但是您正在检查集合中的 cookie 甚至在添加之前。所以你需要在 Request.Cookie Collection 中检查它

关于c# - 无法设置/获取 cookie 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4808660/

相关文章:

asp.net - 使用 ASP.Net 母版页和主题从内部文件夹引用 favicon

php - 使用 cURL 和安全页面上的当前 session 和 cookie 数据检索网站 HTML 页面

c# - 单声道/Cygwin 问题?

asp.net - 基于 ASP.NET Identity 的两个 ASP.NET 应用程序之间的通用身份验证

c# - 是否可以创建一个可以从两个线程访问的 GUI 控件?

C# ASP.NET - 填充组合框以显示数据源中的两个值?

python - Django 语言更改被忽略,保持默认

javascript - 将设置存储在 Javascript Cookie 中

c# - C# 中模态形式和非模态形式有什么区别?

c# - WPF 绑定(bind)问题 - UI 更新,对象不更新