过期的会话cookie阻止成功登录

时间:2013-10-19 10:07:56

标签: asp.net forms-authentication session-timeout

对于使用表单身份验证的ASP.NET Web应用程序,我在Global.asax中添加了以下代码,以便在会话到期时将用户注销:

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

这是为了防止由于在预先存在的代码中未经检查使用Session变量而导致的问题。但是我注意到,只要会话在用户未登录时到期,代码就会阻止成功登录,不断将用户重定向到登录页面。问题似乎在于会话cookie保持设置并且不允许会话更新,因为删除它会重新启用正常登录。编辑会话cookie的值也会导致登录循环。

1 个答案:

答案 0 :(得分:0)

我找到了解决上述问题的方法。追加:

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

解决了这个问题,虽然看起来确实有点不正统。似乎空会话无法在会话cookie中更新会话ID。