Подтвердить что ты не робот

Как удалить cookie из .Net

Возможный дубликат:
Удалить файл cookie при нажатии кнопки выключения

Я хочу удалить файлы cookie при выходе пользователя из системы.

Вот мой код:

 if (HttpContext.Current.Request.Cookies["currentUser"] != null)
 {
     DeleteCookie(HttpContext.Current.Request.Cookies["currentUser"]);
 }


       public void DeleteCookie(HttpCookie httpCookie)
        {
            try
            {
                httpCookie.Value = null;
                httpCookie.Expires = DateTime.Now.AddMinutes(-20);
                HttpContext.Current.Request.Cookies.Add(httpCookie);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }

Но это не сработает. Есть ли у вас предложения?

4b9b3361

Ответ 1

 HttpCookie currentUserCookie = HttpContext.Current.Request.Cookies["currentUser"];
 HttpContext.Current.Response.Cookies.Remove("currentUser");
 currentUserCookie.Expires = DateTime.Now.AddDays(-10);
 currentUserCookie.Value = null;
 HttpContext.Current.Response.SetCookie(currentUserCookie);

Он работает.

Ответ 2

Вместо добавления файла cookie вы должны изменить Response's cookie Expires на значение в прошлом:

if (Request.Cookies["currentUser"] != null)
{
    Response.Cookies["currentUser"].Expires = DateTime.Now.AddDays(-1);   
}

Sidenote: вместо throw ex вам нужно просто throw сохранить его stacktrace. С#: Бросок пользовательских исключений Best Practices

Ответ 3

Добавьте cookie (с прошлым истечением) вместо коллекции HttpContext.Current.Response.Cookies. Запрос предназначен для чтения файлов cookie, отправленных сервером - ответ отправляется обратно клиенту.

Ответ 4

Возможно, вы можете использовать Response.Cookies.Clear() или Response.Cookies.Remove().