2017-10-04 10 views
1

コード(Global.asaxの中):セッションタイムアウト - 「私を覚えている」ようにするには?

void Session_Start(object sender, EventArgs e) 
{ 
    // remember me 
    HttpCookie rememberCookie = HttpContext.Current.Request.Cookies["remember"]; 
    if (rememberCookie != null) 
    { 
     if (rememberCookie.Value == "true") 
      HttpContext.Current.Session.Timeout = 464800; 
     else 
      HttpContext.Current.Session.Timeout = 70; 
    } 
    else 
     HttpContext.Current.Session.Timeout = 60; 
} 

Basicly、私はセッションとクッキーを使用して "私を覚えている" ようにしたいです。 これはhome.aspx.cs細かい作業

public void _loginFrmSubmit(object sender, EventArgs e) 
{ 
    Session["User"] = home_username.Text; 
    HttpCookie rememberCookie; 
    //rememberCookie.HttpOnly = true; 
    if (remember.Checked) 
    { 
     rememberCookie = new HttpCookie("remember", "true"); 
     rememberCookie.Expires = DateTime.Now.AddMonths(12); 
    } 
    else 
    { 
     rememberCookie = new HttpCookie("remember", "false"); 
     rememberCookie.Expires = DateTime.Now.AddDays(1); 
    } 
    HttpContext.Current.Response.Cookies.Add(rememberCookie); 
    Response.Redirect(Request.RawUrl); 
} 

コードでログイン最初の発射コード、です。しかし、ログアウトした後:

public void _Quit(object sender, EventArgs e) 
{ 
    HttpCookie rememberCookie = new HttpCookie("remember"); 
    rememberCookie.Expires = DateTime.Now.AddDays(-1); 
    Response.Cookies.Add(rememberCookie); 
    Session.Clear(); 
    Response.Redirect(Request.RawUrl); 
} 

もう一度ログインします。 session.timeoutは変更されていません。それは最初のタイムアウトセットで立ち往生します。私がログアウトするたびにログインするようにしてください。セッションのタイムアウトが変わります。

+0

https://stackoverflow.com/questions/3140341/how-to-create-persistent-cookies-in-asp-netこれは重複した質問 –

+0

Aaronです。 Sさん、クッキーを使って質問しました。私の質問はセッションについてです。 – David

+0

とそのクッキーはどこに保存されていますか?セッションでは、右か? –

答えて

0

私はクッキーを追加してセッションを開始する必要が全くなかったので、これはすべて私がこのようなことをするのはとても馬鹿でした。私がしなければならないのは、aspx.cs(ログイン送信)のセッションタイムアウトを設定することだけです。

public void _loginFrmSubmit(object sender, EventArgs e) 
{ 
      Session["User"] = home_username.Text; 
      if (remember.Checked) 
       Session.Timeout = 464800; 
      else 
       Session.Timeout = 120; 
      Response.Redirect(Request.RawUrl); 
      Response.Redirect(Request.RawUrl); 
} 

それは私のために私はそれを試してみました覚えている最後の時間を働いていなかったので、私はちょうど、私はそれを行うことができます知りませんでした。そのようなセッションを使用する例とチュートリアルがないことは奇妙です。私は何も見つけられませんでした。インターネットでは、「私を覚えてください」というオプションを使ってセッションを使用する例が見つかりました。なぜ誰も私の質問に答えなかったのですが、それは簡単です。

関連する問題