存储和读取Cookie

时间:2019-02-21 07:33:41

标签: c# asp.net cookies

我正在尝试将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。

有人可以让我知道这段代码到底有什么问题吗?

0 个答案:

没有答案