2017-05-03 61 views
0

我已經從網站主(其中登錄表單)Cookies - 如何獲取上次登錄日期時間?

protected void btnLogin_Click(object sender, EventArgs e) 
    { 
     string dt = DateTime.Now.ToString(); 
     Response.Cookies["LastLogin"].Value = dt.ToString(); 
     Response.Cookies["LastLogin"].Expires = DateTime.Now.AddDays(365); 
    } 

所以基本上下面的代碼我保存當前日期時間在cookie中,當用戶登錄英寸

然後在輪廓回顧頁面中,我寫道:

protected void Page_Load(object sender, EventArgs e) { 
    if (!Page.IsPostBack) 
     { 
      if (Request.Cookies["LastLogin"] != null) 
       { 
        lblMessage.Text = Request.Cookies["LastLogin"].Value; 
       } 
     }} 

的事情是,它的工作原理(它顯示的日期和時間),而不是以前的日誌中,但對於實際的登錄,很明顯,但是這就是爲什麼我問 - 如何解決這個問題沒有h想用數據庫做任何事情?我怎麼能不「覆蓋」以前的值,但也保存新的值?

+0

也許我應該創建一個字符串數組,然後當我請求cookie時,請求i-1值?我不知道如果這是可能的,但我是新的cookie代碼 – concretejungle

+0

看看我的答案,讓我知道它是否適合你?謝謝! – degant

+0

@degant對不起,遲到回覆!是的,它的工作,非常感謝 – concretejungle

回答

1

使用一個cookie的LastLogin保存,可以使用應用程序的休息和CurrentLogin保存當前登錄的時間戳上次登錄信息。

protected void btnLogin_Click(object sender, EventArgs e) 
{ 
    string dt = DateTime.Now.ToString(); 
    if (Response.Cookies["CurrentLogin"] != null) 
    { 
     HttpCookie oldLoginCookie = new HttpCookie("LastLogin") 
     { 
      Expires = Response.Cookies["CurrentLogin"].Expires, 
      Value = Response.Cookies["CurrentLogin"].Value 
     }; 
     Response.SetCookie(oldLoginCookie); 
    } 
    HttpCookie loginCookie = new HttpCookie("CurrentLogin") 
    { 
     Expires = DateTime.Now.AddDays(365), 
     Value = dt.ToString() 
    }; 
    Response.Cookies.Add(loginCookie); 
} 

另外使用的SetCookie()代替Cookies.Add(),以避免從作爲建議here添加多個cookie。只要您進行上述更改,您的Page_Load方法應該按原樣工作。

0

在進行登錄時,您可以將之前的日期(Response.Cookies["LastLogin"].Value,覆蓋之前)存儲到新的cookie中 - 然後在您的頁面加載中檢查此新cookie。

您確實需要檢查LastLogin是否爲空,以防萬一這是第一次登錄。

事情是這樣的:

protected void btnLogin_Click(object sender, EventArgs e) 
{ 
    if(Request.Cookies["LastLogin"] != null) 
    { 
     Request.Cookies["PrevLogin"].Value = Request.Cookies["LastLogin"].Value; 
     Request.Cookies["PrevLogin"].Expires = DateTime.Now.AddDays(365); 
    } 

    string dt = DateTime.Now.ToString(); 
    Response.Cookies["LastLogin"].Value = dt.ToString(); 
    Response.Cookies["LastLogin"].Expires = DateTime.Now.AddDays(365); 
} 
+0

嗯,我在線Request.Cookies [「PrevLogin」]。Value = Request.Cookies [「LastLogin」]。作爲異常詳細信息:System.NullReferenceException:未將對象引用設置爲對象的實例。 – concretejungle

相關問題