C# 响应cookie未更新
当我登录时,我创建以下cookie:C# 响应cookie未更新,c#,asp.net,cookies,C#,Asp.net,Cookies,当我登录时,我创建以下cookie: HttpCookie cookie = new HttpCookie("Ortund"); // insert cookie values cookie.Expires = DateTime.Now.AddMonths(1); Response.Cookies.Add(cookie); 当我从这个cookie请求数据时,我使用request.Cookies: string username = Convert.ToString(Request.Cookie
HttpCookie cookie = new HttpCookie("Ortund");
// insert cookie values
cookie.Expires = DateTime.Now.AddMonths(1);
Response.Cookies.Add(cookie);
当我从这个cookie请求数据时,我使用request.Cookies:
string username = Convert.ToString(Request.Cookies["Ortund"]["Username"]);
当我注销时,我会执行以下操作:
HttpCookie cookie = new HttpCookie("Ortund");
cookie.Expires = DateTime.Now.AddMonths(-1);
Response.Cookies.Add(cookie);
出于某种原因,现在我正坐在一个cookie旁边,请求中的cookie过期日期为0001-01-01 12:00:00 AM
。Cookies[“Ortund”]和cookie的过期日期不会改变,无论我登录多少次
我做错什么了吗?这是否接近应该如何做呢?在注销时,您正在创建一个新的cookie实例。另外,您正在使用
Response.Cookies.Add
,这可能会允许将多个同名Cookies附加到响应中
我建议您检查请求
中的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);
}