如何正确签出用户

时间:2012-05-27 12:57:55

标签: asp.net asp.net-membership

我有一个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();
    }

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

尝试在您的退出页面的页面加载时添加此内容:

Session.Clear();