2016-03-04 73 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

相關問題