Хранение и чтение куки - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь сохранить cookie на одной странице и один раз установить, перенаправляя на другую страницу.

HttpCookie ck= new HttpCookie("ckF");        
ck.Values["First"] = First.ToString();
ck.Values["Second"] = Second;
ck.Values["Third"] = Third;
ck.Expires = DateTime.Now.AddDays(30);
Response.Cookies.Add(ck);        
Response.RedirectToRoute("default");

Затем я проверяю, существует ли cookie, и если он существует, я обрабатываю его следующим образом:

var test = Response.Cookies["ckF"];
if(!HttpContext.Current.Response.Cookies.AllKeys.Contains("ckF"))
             Response.RedirectToRoute("CookieSettingPage"); 
else
{
   HttpCookie cok = HttpContext.Current.Request.Cookies["ckF"];
   NameValueCollection nameValueCollection = cok.Values;
   Dictionary<string, string> keyVal = new Dictionary<string, string>();
   foreach (string key in nameValueCollection.AllKeys)
   {
     keyVal.Add(key, cok[key]);
   }
}

Здесь я сталкиваюсь с двумя проблемами:

  1. Файлы cookie работают только один раз.То есть, после прочтения все работает нормально. Но если я перезагружаю страницу Следующая строка не показывает значения cookie

    HttpCookie cok = HttpContext.Current.Request.Cookies ["ckF"];

  2. Еще одно, если я удалю следующую строку, то значения cookie не могут быть получены.

    var test = Response.Cookies ["ckF"];

Что ожидается: Страница (cookieSettingPage) устанавливает выбранные пользователем настройки для30 дней, после чего пользователь перенаправляется на страницу по умолчанию.В следующий раз, когда пользователь заходит на сайт, мне нужно проверить, есть ли настройки в cookie.Если это так, мне нужно перевести пользователя непосредственно на страницу по умолчанию, иначе перенаправить на cookieSettingPage.

Может кто-нибудь сообщить мне, что именно не так с этим кодом?

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