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();
Другие вопросы по тегам