2017-05-03 3 views
0

私は基本的に、私はクッキーときにユーザーがログイン中で現在の日時を保存するサイトマスター(ログインフォームがある)クッキー - 前回のログイン日時を取得するには?

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); 
    } 

から、次のコードを持っている。

を次にプロファイルの見直しにページ、私は次のように書いた:

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

事は明らかに、(それは日付と時刻が表示されます)、それが動作することではなく、中に以前のログのためではなく、実際のログインのために、しかし、私はなぜthatsの尋ねる - どのように私はhなしでこれを解決することができますデータベースを使って何かをするのが好きですか?以前の値を "上書き"できないだけでなく、新しい値も保存できますか?

+0

私は文字列配列を作成する必要がありますし、私は、クッキーを要求するとき、i-1の値を要求しますか?私はそれが可能かどうかわからない、私はクッキーコードで新しいです – concretejungle

+0

私の答えを見て、それがあなたのために動作するかどうかを教えてください?ありがとう! – degant

+0

@degant遅く応答して申し訳ありません!はい、それは動作します、ありがとうございます – concretejungle

答えて

1

現在のログインのタイムスタンプを保存するために、アプリケーションとCurrentLoginの残りの部分で使用することができ、最後のログイン情報を保存するために、1枚のクッキーLastLoginを使用します。

また hereがアドバイスとして追加されることから、複数のクッキーを避けるために SetCookie()代わりの Cookies.Add()を使用して
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); 
} 

。上記の変更を行う限り、Page_Loadメソッドはそのまま動作するはずです。

0

の前にの日付(上書きする前に)を新しいクッキーに保存して、ページの読み込み時にこの新しいクッキーを確認することができます。

初めてのログインの場合は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"]でエラーが発生しています。値= Request.Cookies ["LastLogin"]。例外の詳細として:System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。 – concretejungle

関連する問題