2017-10-04 61 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; 
} 

基本上,我想使 「記住我」 使用會話和餅乾。 這是代碼時,當第一次發射在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

亞倫。 S,你只給我發個問題。我的問題是關於會議。 – David

+0

和那個cookie存儲在哪裏?在會話中,對嗎? –

回答

0

好的,這對我來說是很愚蠢的,因爲我不需要添加任何cookie並根據會話開始工作。我所要做的就是在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); 
} 

我只是不知道我能做到這一點,因爲它沒有爲我上次我記得我嘗試過。奇怪的是,沒有使用這樣的會話的例子和教程。我沒有找到任何東西,互聯網上的任何表單都會顯示使用「記住我」選項的會話示例。我不知道爲什麼沒有人回答我的問題,這很簡單。