Ошибка при чтении и записи файлов cookie с ASP .NET MVC - PullRequest
0 голосов
/ 31 октября 2019

На веб-странице 2 ссылки. ДОМ И ВХОД. Мой пользователь говорит мне, что HOME использовал, чтобы доставить ее прямо на страницу в приложении. Поведение для HOME теперь такое же, как и для LOGIN.

Я посмотрел код и обнаружил, что для достижения этого используется какое-то управление файлами cookie.

Вот фрагмент кода, которыйсохраняет куки в браузере, если на странице установлен флажок.

                if (remember != "")
                {
                    HttpCookie cookieRememberMe = new HttpCookie("RememberMe") {Value = remember};
                    this.ControllerContext.HttpContext.Response.Cookies.Add(cookieRememberMe);
                    HttpCookie cookieCustomerId = new HttpCookie("CustomerId") {Value = ViewBag.CustomerId.ToString()};
                    this.ControllerContext.HttpContext.Response.Cookies.Add(cookieCustomerId);
                    if (Response != null)
                    {
                        Response.Cookies["CustomerId"].Value = cookieCustomerId.Value;
                        Response.Cookies["CustomerId"].Expires = DateTime.Today.AddDays(30);
                        Response.Cookies["RememberMe"].Value = cookieRememberMe.Value;
                        Response.Cookies["RememberMe"].Expires = DateTime.Today.AddDays(30);
                    }
                }

Когда пользователь нажимает на домашнюю страницу, он должен увести этого пользователя с экрана входа в систему, но он остановилсяработает. Вот код, когда пользователь нажимает кнопку HOME.

public ActionResult Index()
        {
            Session["LoggedIn"] = false;
            Session["CustomerId"] = 0;
            if (Request.Cookies.AllKeys.Contains("CustomerId") && Request.Cookies.AllKeys.Contains("RememberMe"))
            {
                if (Request.Cookies["CustomerId"].Expires >= DateTime.Now)
                {
                    var cid = Request.Cookies["CustomerId"].Value;

                    var u = Request.Cookies["RememberMe"].Value;
                    if (u != "")
                    {
                        Session["LoggedIn"] = true;
                        Session["CustomerId"] = cid;
                        return RedirectToAction("PaymentHistory", "Home");
                    }
                }
            }
            return View();

        }

Отладка кода приводит меня к мысли, что файлы cookie сохраняются, но дата окончания срока действия файла cookie не соблюдается. Код не должен был работать в этом случае, но она говорит, что код работал все время и теперь перестал работать.

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