我有以下代码:
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/