Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 响应cookie未更新_C#_Asp.net_Cookies - Fatal编程技术网

C# 响应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

当我登录时,我创建以下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);
}