Browser back button after log out

2020-07-15 06:55发布

问题:

How can i prevent browser using the cached copy of the page after log out ?

When user logged out still they can access the previous pages by using the back button.

I understand that we cannot disable the back button (as per SO answers).

Currently i have a large number of pages in different scenarios so i cannot modify each and every page.

What i have tried

  1. Setting the expire header (do i need to set this on each and every page ? also if i do this does browser cache the page contents ? ( because i need the browser to cache contents if user is logged in ))
  2. I have already a polling system ( but still there is a delay to detect )
  3. Javascript based solution ( it works, but still users can use history option to navigate or a long press in back button )

I am really stuck here , Could you please help me to solve the problem ?

回答1:

I think this code will help you, use this code in parent controller constructor.

//Log out Back
header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1.
header("Pragma: no-cache"); // HTTP 1.0.
header("Expires: 0"); // Proxies.


回答2:

This is the link answers all.

http://www.codeproject.com/Tips/549347/Browser-Back-Button-Issue-After-Logout

I tried above all solutions but browser incompatible.

So better way is to do Ajax post or in page load check for session var null or not.

This tip also has a limitation that when user clicks the back button of the browser, the back page shows for 1 or half second because of executing the WebMethod. but works for sure in all version of any browser!!