2013-12-20 91 views
0

我正在使用的網站在會話閒置20分鐘後休息。它沒有正確處理會話cookie並返回登錄頁面,因爲它應該。試圖在會話超時後退出

protected void lnkSignOut_Click(object sender, EventArgs e) 
{ 
    if (HttpContext.Current != null && HttpContext.Current.Session != null) 
    { 
     HttpContext.Current.Session.Abandon(); 
    } 

    // HttpContext.Current.Session.Abandon(); Added this an attempted fix 
    FormsAuthentication.SignOut(); 
    FormsAuthentication.RedirectToLoginPage(); 
} 

我對ASP.NET很新,所以我不熟悉如何處理會話。有任何想法嗎?

+0

究竟是什麼問題?空閒20分鐘後會註銷嗎? – Ani

+0

它會話超時,但如果您單擊退出按鈕,而不是將您發送到登錄頁面,它會使網站崩潰。 – user1729696

+0

是否在web.config中設置了會話超時?你檢查了嗎 ? – Ani

回答

1

您需要設置webconfig是這樣的:

<configuration> 
    <system.web> 
    <authentication mode="Forms"> 
     <forms 
      name="WhateverYourAuthNameIs" 
      loginUrl="login.aspx" 
      defaultUrl="default.aspx" 
      protection="All" 
      timeout="20" 
      cookieless="AutoDetect" 
     </forms> 
     </authentication> 
    </system.web> 
</configuration> 

瞭解更多關於在這裏:​​http://msdn.microsoft.com/en-us/library/1d3t3c61(v=vs.85).aspx