【发布时间】:2025-12-13 03:15:02
【问题描述】:
我正在使用编码存储和检索 cookie
public static void SetCookie(string key, string value, int dayExpires)
{
HttpCookie encodedCookie = HttpSecureCookie.Encode(new HttpCookie(key, value));
encodedCookie.Expires = DateTime.Now.AddDays(dayExpires);
HttpContext.Current.Response.Cookies.Remove(key);
HttpContext.Current.Response.Cookies.Add(encodedCookie);
}
public static string GetCookie(string key)
{
string value = string.Empty;
HttpCookie cookie = HttpContext.Current.Request.Cookies[key];
if (cookie != null)
{
// For security purpose, we need to encrypt the value.
HttpCookie decodedCookie = HttpSecureCookie.Decode(cookie);
value = decodedCookie.Value;
}
else
{
SetCookie("currency", "GBP", 1);
if (key.ToUpper() == "CURRENCY")
value = "GBP";
else if (key.ToUpper() == "COUNTRYCODE")
value = "GB";
}
return value;
}
}
我能够存储 cookie,并且当我尝试使用 HttpContext.Current.Request.Cookies[key] 从 cookie 中获取货币值时,其中键具有货币的值正在获取为“”
在下图中,您可以查看存储的 cookie
在这里你可以看到你可以重复两次货币。在键 [4] 中,货币是“”,因为我在键 [6] 中有我的 cookie 值。当我删除密钥然后在直接行中添加密钥时,为什么货币重复两次的任何帮助。
出于测试目的,我已经放置了集合并进入了直接行。代码如下
CookieStore.SetCookie("currency", CurrencyCode, 1);
string currencycookie=CookieStore.GetCookie("currency");
最终,我必须只有一种货币,在那里我拥有唯一的密钥。
谢谢。
【问题讨论】:
标签: c# asp.net-mvc-4 cookies