当我记录时,我创建以下cookie:
[]
当我从此cookie请求数据时,我使用Request.Cookies:
HttpCookie cookie = new HttpCookie("Ortund");
// insert cookie values
cookie.Expires = DateTime.Now.AddMonths(1);
Response.Cookies.Add(cookie);
当我退出时,我这样做:
string username = Convert.ToString(Request.Cookies["Ortund"]["Username"]);
出于某种原因,现在我坐在 Request.Cookies [" Ortund"] 中的有效期为HttpCookie cookie = new HttpCookie("Ortund");
cookie.Expires = DateTime.Now.AddMonths(-1);
Response.Cookies.Add(cookie);
的Cookie中无论我登录多少次,cookie的失效日期都不会改变。
我在这里做错了吗?这甚至接近它应该如何做?
答案 0 :(得分:0)
在您的注销中,您正在创建cookie的新实例。您还使用Response.Cookies.Add
,这可能允许将多个同名的Cookie附加到Response
。
我建议您检查Request
是否有Cookie密钥,如果不存在则添加Cookie。
要更新Cookie,请先获取现有Cookie对象,然后使用Response.SetCookie
更新该值。
<强>代码强>
<强> 设置 强>
if(!Request.Cookies.AllKeys.Contains("Ortund"))
{
HttpCookie cookie = new HttpCookie("Ortund");
// insert cookie values
cookie.Expires = DateTime.Now.AddMonths(1);
Response.Cookies.Add(cookie);
}
<强> 更新 强>
if (Request.Cookies.AllKeys.Contains("Ortund"))
{
HttpCookie cookie = Request.Cookies["Ortund"];
cookie.Expires = DateTime.Now.AddMonths(-1);
Response.SetCookie(cookie);
}