Как удалить куки со стороны сервера в C #

1

У меня есть проект 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);
            }
  • 1
    Удалите куки перед добавлением истек: Response.Cookies.Remove ("страница");
Теги:
cookies
asp.net-mvc-4

2 ответа

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);
}
1

Вы пытались удалить 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 страницы, поэтому проверка его существования не требуется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню