c# static class 中处理 cookie 的问题

issues in c# static class to deal with cookies

我想创建一个静态 class 来处理我的 ASP.NET 站点中的 cookie。 class 是用 c# 编写的,位于 App_code 文件夹中。

我遇到的问题是,cookie 中的更新总是删除我以前在 cookie 中的值,而不是添加。 我创建了一个简单的代码。

起初 cookie 的值为 1=a ,这很好(正确)。 但是在第二个 运行 中,当我输入 if 而不是 else 时,cookie 值是 2=b.

我要的结果是1=a&2=b

谢谢

让我试着解释一下发生了什么。当您像这样 HttpContext.Current.Response.Cookies["test2"].Values.Add("1", "a"); 设置 cookie 集合的值 "test2" 时,您正在发送一个新的 cookie 集合对象作为新 HTTP 响应流的一部分。新的 HTTP Response 对象对之前设置的 Name/Value cookie 项一无所知(现在可以通过 HTTP 的 Request 对象访问)。 要解决这个问题,只需将请求对象中的 cookie 添加到 Response 对象中的新 cookie 集合中。



    if (Request.Cookies["Whosebug"] != null)
    {               
        Response.Cookies["Whosebug"].Values.Add(Request.Cookies["Whosebug"].Values);
        Response.Cookies["Whosebug"].Values.Add("2", "bbbb");
    }
    else
    {
        Response.Cookies["Whosebug"]["1"] = "aaaaaa";
    }