Я пытаюсь удалить этот файл cookie:
![enter image description here](https://i.stack.imgur.com/e2o08.png)
Прежде всего немного фона. Это токен для проверки на разных сайтах в пределах одного домена. Я делаю центральную страницу входа. Эта страница работает нормально, кроме выхода. Любой другой файл cookie, который я хочу удалить, удаляется файлом cookie JQuery $.removeCookie('cookieName')
. И я знаю, что не могу удалить это из JavaScript из-за флага безопасности.
Итак, я попытался удалить его из метода контроллера. Я вызываю этот метод через ajax из JavaScript.
$.ajax({ur:'/Login/ExpireToken'})
Я вижу, что он работает на вкладке «Сеть» консоли Chrome.
public void ExpireToken()
{
Response.Cookies.Remove("crowd.token_key");
}
Но это, я не знаю почему, создает новый файл cookie с тем же именем, пустым значением, всем доменом страницы входа и без установленных флагов.
Итак, я проверил, может ли бэкэнд найти нужное мне печенье.
public string ExpireToken()
{
return Response.Cookies["crowd.token_key"].Value;
}
Возвращает правильное значение и не создает новое / ложное.
После этого я попытался установить для поля expires один день в прошлом или сейчас. Я не знаю, почему это должно работать, потому что срок годности этого куки уже в прошлом.
public void ExpireToken()
{
Response.Cookies["crowd.token_key"].Expires = DateTime.Now.AddDays(-1d);
}
И угадайте что, это не работает. Это буквально ничего не делает.
Другие способы, которые не работают
if (Request.Cookies["crowd.token_key"] != null)
{
var c = new HttpCookie("crowd.token_key");
c.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(c);
}