我正在尝试将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]);
}
}
我在这里面临两个问题:
Cookie只工作一次。也就是说,一旦读取,一切都可以正常工作。但是,如果我重新加载页面,则以下行没有显示Cookie值
HttpCookie cok = HttpContext.Current.Request.Cookies [“ ckF”];
另一个是,如果我删除以下行,则无法获取任何cookie值。
var test = Response.Cookies [“ ckF”];
预期结果: 页面(cookieSettingPage)将用户的首选项设置为30天,然后用户将被重定向到默认页面。下次用户访问该网站时,我需要检查cookie中是否存在首选项。如果是这样,我需要直接将用户带到默认页面,否则重定向到cookieSettingPage。
有人可以让我知道这段代码到底有什么问题吗?