0

对于使用表单身份验证的 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 的值也会导致登录循环。

4

1 回答 1

0

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

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

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

于 2013-10-21T11:43:28.183 回答