我有一个asp.net mvc 4项目,尝试更新我的cookie,但不是这样,它创建了另一个cookie,例如我有3个重复的cookie,名称为" page&#34 ;。有谁知道如何解决这个问题?
if (page != null && Request.Browser.Cookies) {
if (Response.Cookies.AllKeys.Contains("page")) {
var aCookie = new HttpCookie("page") { Expires = DateTime.Now.AddDays(-1) };
Response.Cookies.Add(aCookie);
}
var pages = new HttpCookie("page") { Value = page.ToString(), Expires = DateTime.Now.AddDays(7) };
Response.Cookies.Add(pages);
}
答案 0 :(得分:1)
您是否尝试在添加新Cookie之前删除Cookie。
if (page != null && Request.Browser.Cookies)
{
Response.Cookies.Remove("page");
var pages = new HttpCookie("page") { Value = page.ToString(), Expires = DateTime.Now.AddDays(7) };
Response.Cookies.Add(pages);
}
请注意,如果没有页面cookie,则Response.Cookies.Remove(“page”)不会抛出异常,因此不需要测试它是否存在。
答案 1 :(得分:0)
如果要从客户端删除Cookie,则应将其设置为已过期:
if (page != null && Request.Browser.Cookies) {
Response.Cookies.Remove("page");
var aCookie = new HttpCookie("page") { Expires = DateTime.Now.AddDays(-1) };
Response.Cookies.Add(aCookie);
}
但如果您只需要更新它,只需将其从响应中删除并添加新版本:
if (page != null && Request.Browser.Cookies) {
Response.Cookies.Remove("page");
var pages = new HttpCookie("page") { Value = page.ToString(), Expires = DateTime.Now.AddDays(7) };
Response.Cookies.Add(pages);
}