Как очистить кэш браузера, когда пользователь выходит из системы asp.net используя c#?
Как новый в asp.net. в моем asp.net заявление о приеме в члены log off
on click event
используя функцию ClearSession()
, но проблема возникает после выхода из системы, если я нажимаю кнопку назад на браузере это перенаправление на кэшированную страницу. Как очистить кэш в браузере, чтобы пользователь не мог просмотреть его профиль, если он не входит в систему
protected void ClearSession()
{
FormsAuthentication.SignOut();
Session.Clear();
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ExpiresAbsolute = DateTime.UtcNow.AddDays(-1d);
Response.Expires = -1500;
Response.CacheControl = "no-Cache";
}
2 ответа:
Я думаю, что вы почти там. Вам нужно больше заголовков HTML для поддержки всех браузеров. Согласно этой статье на SO это те, которые работают на всех браузерах:
Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Expires: 0
Полный код для этого:
HttpContext.Current.Response.AddHeader("Cache-Control", "no-cache, no-store, must-revalidate"); HttpContext.Current.Response.AddHeader("Pragma", "no-cache"); HttpContext.Current.Response.AddHeader("Expires", "0");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0);
Эти заголовки будут работать только на страницах, на которых они включены не для всех веб-приложений, поэтому либо вы должны добавить фильтр, который включает этот заголовок для всех страниц, либо вы можете отключить кнопку Назад.