Search code examples
c#asp.netcache-control

How to clear browser cache when user log off in asp.net using c#?


As new in asp.net. In my asp.net application in membership in log off on click event using function ClearSession(), but problem arises after log off if i click back button on browser it is forwarding to the cached page. How to clear cache in browser so a user could not view its profile if he is not login

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";
}

Solution

  • I think you are almost there. You need more HTML headers to support all browsers. According to this article on SO these are the ones that work on all browsers:

    Cache-Control: no-cache, no-store, must-revalidate
    Pragma: no-cache
    Expires: 0
    

    The full code for this is:

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