c# - HttpListenerResponse 添加第二个 cookie 使所有 cookie 消失

标签 c# cookies

我有以下代码:

    void WriteConnectionId(HttpListenerContext context, string id)
    {
        var cookie = context.Response.Cookies[CookieConnectionId];
        if (cookie == null)
        {
            cookie = new Cookie(CookieConnectionId, id)
            {
                HttpOnly = true,
                Secure = true,
                Path = "/"
            };
            context.Response.Cookies.Add(cookie);
        }
        else
        {
            cookie.Value = id;
        }
        //context.Response.SetCookie(new Cookie("lalala", "lololo"));
    }

此代码在客户端中正确存储“连接 ID”的 cookie。在 Chrome 的控制台中,我可以在 cookie 列表中看到该 cookie。

但是,如果我取消注释添加额外 cookie 的最后一行,则 session cookie 或虚拟 cookie 都不会发送到客户端。它们不会出现在 Chrome 的控制台中。

编辑:删除第一个 Cookie 上的“/”路径会使第一个 Cookie 出现,但第一个和第二个 Cookie 的值都用逗号连接起来。

最佳答案

尝试

context.Response.AppendCookie(new Cookie("lalala", "lololo"));

关于c# - HttpListenerResponse 添加第二个 cookie 使所有 cookie 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47354480/

相关文章:

c# - 如何在循环中使用匿名方法实例化唯一委托(delegate)(在 C# 中)?

c# - 使用带有泛型类的 ContextBuilder 使用 Entity Framework 4 创建 EDMX/DB-Schema 的异常

c# - 如何制作前向词,后向词,将下划线视为单词的一部分?

javascript - 使用 JS 检测 IE 11 中是否启用 Cookie

iframe - 不同子域上的 session cookie 算作第 3 方吗?

c# - 解析日志文件并获取匹配的数据

c# - 帮助用数据库数据XAML修改datagrid

http - SameSite属性如何保护用户不被泄露?

security - 使用JWT保护SPA的最佳做法

internet-explorer - 无法在 IE 中的 IFRAME 中设置 cookie,即使使用 P3P header