Как удалить 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);
}
}
Но это не сработает. Есть ли у вас предложения?
Ответы
Ответ 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().