我有一个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();
}
答案 0 :(得分:1)
我现在明白了,这真的很傻;注销页面中的FormsAuthentication.RedirectToLoginPage()将/Login.aspx?ReturnUrl=%2fAccount%2fLogout.aspx放入URL中,因此如果您尝试登录,则会再次重定向回登出页面。我应该早点看到这个,抱歉浪费你的时间:(
答案 1 :(得分:0)
尝试在您的退出页面的页面加载时添加此内容:
Session.Clear();