Как очистить кэш браузера, когда пользователь выходит из системы 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 5

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); 

Эти заголовки будут работать только на страницах, на которых они включены не для всех веб-приложений, поэтому либо вы должны добавить фильтр, который включает этот заголовок для всех страниц, либо вы можете отключить кнопку Назад.