如果用户点击登录视图中的“记住我”复选框
,则使用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?
答案 0 :(得分:1)
HttpCookie 如果你存储有时间限制所以它是共享硬盘,但是如果你为你的应用程序使用非持久性cookie它是非常有用的,只有浏览器打开时才有效。当用户关闭浏览器时,cookie将被丢弃。
中的参考答案 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,即昨天