2014-07-03 82 views
0

我正在用.net 2.0創建一個網頁,我想檢查它是否是第一次訪問該用戶。在asp.net中找不到cookie c#

我使用在頁面加載代碼塊():

String CookieName = "Cookie"; 
String CookieValue = "TEST"; 
if (Request.Cookies[CookieName] != null) 
{ 
Label3.Visible = true; 
if (Request.Cookies[CookieName].Value == CookieValue) 
{ 
    Label3.Text = "Cookie already exists: " + Request.Cookies[CookieName].Value.ToString(); 
} 
else 
    Label3.Text = "Cookie var içerisinde: " + Request.Cookies[CookieName].Value.ToString(); 
} 
else 
{ 
Label3.Visible = true; 
HttpCookie MyCookie=new HttpCookie(CookieName,CookieValue); 
Response.Cookies.Add(MyCookie); 
Label3.Text = "Cookie created. " + Request.Cookies[CookieName].Value.ToString(); 
} 

一切似乎是工作,當我運行代碼「LABEL3」變成「曲奇創建的cookie。」並且在另一個回發「Label3」變成「Cookie已經存在。Cookie」之後,它應該是。

但我找不到我的餅乾在任何地方我的本地硬盤。(即使我沒有結束會話)

和結束會議後重新運行的代碼,它與「曲奇再次啓動創建。Cookie「,這意味着它無法找到以前的cookie。

很明顯,缺少某些東西。我試圖添加expry日期和路徑到cookie。他們都沒有爲我工作。

預先感謝您。

Cagri

回答

1

但我找不到我的餅乾在任何地方我的本地硬盤。(即使我沒有結束會話)

如果你有瀏覽器,以及爲什麼不't你:),使用它內置的開發工具CtrlShift並選擇Resources選項卡和繁榮!不只是餅乾

Chrome dev tools

如果你看看上面,在Expires欄,你會看到一個餅乾在瀏覽器Session年底到期,而其他有一組日期。

您在上面創建的Cookie是Session(在瀏覽器關閉後死亡)。

如果你想他們是持久和生存瀏覽器關閉,定義Expires屬性,像這樣:

Response.Cookies.Add(new HttpCookie(CookieName, "hello persistent") { Expires = DateTime.Now.AddDays(1) }); 

H個...