我遇到以下问题:重新发布ASP.NET Web应用程序导致(如预期的那样)会话重置,其中我保留了其他用户信息(尝试进行任何访问都会导致NullReferenceException)。

为避免这种情况,我的页面检查了此信息的存在,如果为null,则将用户重定向到登录页面(forms auth),所以我在打电话:

void LogOut()
{
    Session.Clear();
    Session.Abandon();
    User = null;
    FormsAuthentication.SignOut();
    FormsAuthentication.RedirectToLoginPage()
}


但有时它无济于事,所以我找到了一种解决方法:

Response.Redirect(FormsAuthentication.LoginUrl);


但它并未添加returnUrl,而是我希望的样子(我不想手动模拟此行为)。

因此,想弄清楚为什么第一种方法无法按预期工作。

最佳答案

您是否尝试过在Response.End()之后调用FormsAuthentication.RedirectToLoginPage()

关于c# - FormsAuthentication.RedirectToLoginPage()什么都不做,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8376476/

10-10 10:05