У меня есть проект asp.net mvc 4, где вы пытаетесь обновить мой файл cookie, но вместо этого он создает другой файл cookie, и, например, у меня есть 3 дубликата файлов cookie с именем "страница". Кто-нибудь знает, как это исправить?
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);
}
Если вы хотите удалить свой файл 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);
}
Вы пытались удалить 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);
}
Обратите внимание, что Response.Cookies.Remove("page") не будет генерировать исключение, если оно не является файлом cookie страницы, поэтому проверка его существования не требуется.