1

我有一个 ASP.NET 会员提供程序,它运行良好,但我注意到如果用户更改密码注销然后尝试再次登录它会失败,如果用户有两个或更多帐户并注销也会发生这种情况一个并尝试与另一个登录。如果用户在浏览器中清除了 cookie,他/她可以再次登录,所以当用户退出时,cookie 似乎由于某种原因没有被删除。这是我的退出代码:

void ClearAuthenticationCookie()
    {
        var cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, String.Empty) { Expires = DateTime.Now.AddYears(-1) };
        Response.Cookies.Add(cookie1);            
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        FormsAuthentication.SignOut();

        ClearAuthenticationCookie();

        FormsAuthentication.RedirectToLoginPage();
    }
4

2 回答 2

1

我现在想通了,这真的很愚蠢;退出页面中的 FormsAuthentication.RedirectToLoginPage() 将 /Login.aspx?ReturnUrl=%2fAccount%2fLogout.aspx 放入 URL,因此如果您尝试登录,它会再次重定向回退出页面。我应该早点看到这个,抱歉浪费你的时间:(

于 2012-05-27T18:46:09.513 回答
0

尝试在您的登出页面的页面加载中添加此内容:

Session.Clear();
于 2012-05-27T14:59:09.587 回答