Метод действия выхода из системы приносит данные из кеша браузера - PullRequest
0 голосов
/ 10 октября 2011

У меня есть метод действия выхода из системы.Я уже настраиваю no-cache, но все же он вводит данные из кеша.Это мой метод:

public ActionResult Logout()
        {
            FormsAuthentication.SignOut();

            // 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);
            Session.Abandon();

            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
            Response.Cache.SetNoStore();
            Response.AppendHeader("Pragma", "no-cache");

            return RedirectToAction("Login", "Account");
        }

Я нажимаю на кнопку «Выйти», меня перенаправляют на страницу входа.Затем, когда я нажимаю кнопку «Назад» в браузере, я все равно вижу аутентифицированную страницу, но когда я обновляюсь, я снова перенаправляюсь на страницу входа.Кто-нибудь может сказать мне, что я делаю не так?

1 Ответ

2 голосов
/ 10 октября 2011

Добавьте следующий код в ваши действия

   // to clear cache problems
        this.Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
        this.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        this.Response.Cache.SetNoStore();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...