2012-09-26 45 views
0

我正在創建一個cookie並在其中獲取文本框值。我需要將其過期,然後必須通過檢查它是否已過期來打印郵件。我正在執行以下操作asp.net中的Cookie過期問題

HttpCookie usercookie = new HttpCookie("userinfo"); 
     Response.Cookies["gettingusername"].Value = textbox_username.Text; 
     Response.Cookies["gettingusername"].Expires = DateTime.Now; 
     Response.Cookies.Add(usercookie); 
     if (Request.Cookies["gettingusername"]!=null) 
     { 
      Response.Write("Cookie is Not Expired"); 
     } 
     else 
     { 
      Response.Write("Cookie Expired"); 
     } 

但它總是說: -

Cookie is Not Expired 

我對it.Please幫助新手。 在此先感謝。

+0

我覺得Request.Cookies [「gettingusername」]會創建一個空白的默認cookie,所以'!= null'的條件總是成立的。 – V4Vendetta

回答

0

請嘗試以下...

if (Request.Cookies["gettingusername"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie("userinfo"); 
    myCookie.Expires = DateTime.Now.AddDays(-1);//add -1 days 
    Response.Cookies.Add(myCookie); 
} 
+0

沒有工作 –

0

不能準確瞭解你試圖通過實現。 您應該設置它們並檢查它們是否以不同的方法過期。

例如,您可以設置cookie時按「設置的cookie」按鈕,並在行動到期他們「過期餅乾」

2

你可以像下面:

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

if(myCookie.Expires > DateTime.Now) 
    Response.Write("Cookie not Expired"); 
else 
    Response.Write("Cookie Expired"); 
1

瀏覽器是負責清除過期的cookies。你只需要在將來設定時間即可過期。例如:

if (Request.Cookies["gettingusername"] != null) 
{ 
    Response.Write("Cookie is not expired") 
    Response.Write("Value exists : " + Request.Cookies["gettingusername"]); 
} 
else 
{ 
    Response.Write("Cookie is expired, creating a new cookie."); 
    Response.Cookies.Add(new HttpCookie("gettingusername") 
    { 
     Value = textbox_username.Text, 
     Expires = DateTime.Now.AddDays(1) 
    }); 
}