2013-10-19 31 views
0

對於使用窗體身份驗證我Global.asax添加以下代碼ASP.NET Web應用程序時,他們的會話過期註銷用戶:過期的會話cookie阻止成功登錄

void Session_Start(object s, EventArgs e) 
{ 
    if (Request.IsAuthenticated) 
    { 
     FormsAuthentication.SignOut(); 
     /* cache clean up code */ 
     FormsAuthentication.RedirectToLoginPage(); 
    } 
} 

這是爲了防止由於未選中的問題在預先存在的代碼中使用Session變量。然而,我注意到,無論何時會話過期而用戶未登錄,代碼都會阻止登錄成功,並不斷將用戶重定向到登錄頁面。問題似乎在於會話cookie保持設置並且不允許會話更新,因爲刪除會重新啓用正常登錄。編輯會話cookie的值也會導致登錄循環。

回答

0

我發現了上述問題的修復。追加:

else 
    Session.Add("dummy", 0); 

解決了這個問題,雖然它看起來有點不正統。看起來空的會話無法續訂會話cookie中的會話ID。