实际上asp.net mvc httpcookies存储在哪里?

时间:2016-03-04 05:17:39

标签: c# asp.net-mvc cookies

如果用户点击登录视图中的“记住我”复选框

,则使用cookie存储用户ID和密码
 HttpCookie UserID = new HttpCookie("UserID");
 HttpCookie Password = new HttpCookie("Password");

 UserID.Value = vm.UserID;
 UserID.Expires = DateTime.Now.AddDays(30);
 Password.Value = vm.Password;
 Password.Expires = DateTime.Now.AddDays(30);

 Response.Cookies.Add(UserID);
 Response.Cookies.Add(Password);

我很清楚浏览器cookie,但它仍然保留,因为它意味着当用户打开登录视图时,用户ID和密码字段会自动填充。 那么这些cookie实际上存储在客户端或服务器端? 用户如何清除这些cookie?

2 个答案:

答案 0 :(得分:1)

HttpCookie 如果你存储有时间限制所以它是共享硬盘,但是如果你为你的应用程序使用非持久性cookie它是非常有用的,只有浏览器打开时才有效。当用户关闭浏览器时,cookie将被丢弃。

使用 https://msdn.microsoft.com/en-us/library/ms178194.aspx

中的参考

答案 1 :(得分:0)

浏览器负责管理用户系统上的Cookie Cookie会通过 HttpResponse对象发送到浏览器,该对象会公开名为Cookie 的集合。您可以访问HttpResponse对象作为Page类的Response属性。您要发送到浏览器的任何cookie都必须添加到此集合中。 创建Cookie时,您可以指定名称和值。每个cookie必须具有唯一的名称,以便稍后在从浏览器中读取时可以识别它。因为cookie是按名称存储的,所以命名两个cookie会导致cookie被覆盖。

您可以通过多种方式将Cookie添加到Cookie集合中。

实施例

Response.Cookies["userName"].Value = "Tim";
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1);

 HttpCookie aCookie = new HttpCookie("lastVisit");
 aCookie.Value = DateTime.Now.ToString();
 aCookie.Expires = DateTime.Now.AddDays(1);
 Response.Cookies.Add(aCookie);`

使用Expires功能并指定时间

Cookie可能会保留,因为您再次从服务器端发送

aCookie.Expires = DateTime.Now.AddMinutes(1.0);

这将从当前时间1分钟后删除该cookie

   aCookie.Expires = DateTime.Now.AddDays(-1);

这将在昨天前一天删除该cookie,即昨天