Задержка удаления куки asp net core - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть система для проверки, если пользователь вошел в систему, и если что-то не так с текущими куки, я хочу удалить все куки.

Я нашел способ сделать это с помощью этого кода:

public static void ResetCookkies(HttpResponse HttpResponse, HttpRequest HttpRequest)
{
    foreach(var c in HttpRequest.Cookies.Keys)
    {
        HttpResponse.Cookies.Delete(c);
    }
}

И этот код работает (ну, нет). Часть, которая не работает, это то, что я отправляю пользователя на какую-то страницу, но когда я проверяю его куки в браузере Chrome, они все еще там. Когда я обновляюсь или перехожу на любую другую страницу на сайте, они исчезают.

Я думал, что проблема не в том, чтобы отправить пользователя на другую страницу с return View("someView"), а в попытке обновить страницу, поэтому я использовал return Redirect("/Page");, но все равно не повезло.

Я запускаю эти две команды в следующем порядке:

NetworkClient.ResetCookkies(Response, Request);
return Redirect("/Admin");

Чтобы представить проблему, просто создайте функцию выше, затем создайте контроллер (temp1) и внутри Index добавьте этот код:

CookieOptions co = new CookieOptions();
co.Expires = DateTime.Now.AddMinutes(30);
Response.Cookies.Append("temp", "asd", co);

return View();

затем создайте другой контроллер (temp2) и добавьте этот код:

NetworkClient.ResetCookkies(Response, Request);
return Redirect("/temp3"); //YOu need to create blank temp3

Теперь запустите приложение, перейдите к /temp1 (оно добавит cookie), затем перейдите к /temp2, оно должно удалить его и отправить вам на temp3, и это произойдет, но когда вы в первый раз попадете на файлы cookie temp3, затем обновите его, и они ушли

РЕДАКТИРОВАТЬ: Я только что проверил с отладкой, и это только ошибка в Chrome. Когда я отлаживаю, мой код становится пустым для этого куки, но в chrome он отображается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...