FormsAuthentication.signout() не работает при доступе к приложению с помощью другого компьютера
Я использую следующий код для выхода из системы:
FormsAuthentication.SignOut();
Session.Abandon();
FormsAuthentication.RedirectToLoginPage();
Приведенный выше код работает нормально, когда я получаю доступ к своему приложению с моего компьютера. но если я ударил свое приложение с другого компьютера, подключенного к той же сети, cookie не удаляется и приложение не выходит из системы.
1 ответ
Пользователи по-прежнему могут просматривать ваш веб-сайт, потому что куки не очищаются, когда вы звоните FormsAuthentication.SignOut()
и они аутентифицируются при каждом новом запросе. В документации MS написано, что cookie будет очищен, но это не так, ошибка? Это точно так же, как 'Session.Abandon()',
cookie is still there.
You should change your code to this:
FormsAuthentication.SignOut();
Session.Abandon();
// clear authentication cookie
HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
cookie1.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie1);
// clear session cookie (not necessary for your current problem but i would recommend you do it anyway)
HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", "");
cookie2.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie2);
FormsAuthentication.RedirectToLoginPage();