2016-03-04 83 views
0

我存储使用的cookie,如果用户点击记得我在登录视图复选框在哪里实际存储asp.net mvc httpcookies?

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,但它仍然因为它是指当用户打开登录视图,则用户名和密码字段用户名和密码自动填充。 那么这些cookie实际存储在客户端或服务器端? 如果用户想要如何清除这些cookie?

+0

的可能的复制[删除Cookie上点击登出]

使用引用(http://stackoverflow.com/questions/7079565/delete-cookie-on-clicking-sign-out) – Mathemats

回答

0

浏览器负责管理用户系统上的CookieCookie通过HttpResponse对象发送给浏览器,该对象公开名为Cookies的集合。您可以访问HttpResponse对象作为Page类的Response属性。任何你想发送到浏览器的cookies都必须添加到这个集合中。 创建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);` 

使用过期功能,并指定时间

该Cookie可能会被剩下,因为你是从服务器端再次发送

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

这将删除的cookie从当前时间开始1分钟后

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

这是cookie的前1天,即会删除,昨天

1

的HttpCookie如果存储有时间限制,所以它的份额硬盘,但如果您使用非持久cookie为您的应用程序是非常有用并且只有在浏览器打开时才存在当用户关闭浏览器时,该cookie将被丢弃。从https://msdn.microsoft.com/en-us/library/ms178194.aspx