Django 1.7,python 3.4,IE8
我正在开发一个Django项目,其中用户通过窗口活动目录而不是Django db进行身份验证。
必须对用户进行身份验证才能查看其他页面。我在所有页面上使用@cache_control(no_cache = True,must_revalidate = True,no_store = True)来防止缓存。当用户点击" logout"时,后退按钮将在Firefox和Chrome上过期,但可以在IE8上运行。
客户只能从IE8访问此应用。在用户退出并按下后退按钮后,是否有任何方法可以阻止显示上一页?
请注意,我已将注销页面重定向回登录,但当用户点击后退按钮时,所有这些缓存页面仍将显示在IE8中。
欢迎并赞赏任何评论!
答案 0 :(得分:0)
看起来没有缓存可能是问题所在:
Make IE to cache resources but always revalidate
尝试删除no-cache并将Expires标头设置为-1
这是上面链接的摘录:
"这些是关键的标题字段:
Last-Modified: Wed, 16 Feb 2011 13:52:26 GMT
Expires: -1
Cache-Control: must-revalidate, private
Last-Modified (or ETag) is needed as a validator
Expires -1表示资源已过时,必须重新验证 Cache-Control不得包含no-cache或no-store"
其他一些有用的链接:
http://blog.httpwatch.com/2008/10/15/two-important-differences-between-firefox-and-ie-caching/
http://support2.microsoft.com/default.aspx?scid=KB;EN-US;Q234067
答案 1 :(得分:0)
当用户点击退出按钮时,我最终检查了IE版本。如果它是IE8,那么我将关闭当前窗口并打开一个新的主页窗口。否则,什么都不做。
我还加回了@never_cache
@cache_control(no_cache = True,must_revalidate = True,no_store = True,max_age = 0)
使Chrome和Firefox中的页面失效,以防某些用户有权在这些浏览器中运行该应用程序。
不完全符合我的要求,但现在可以使用。仍在寻找更好的方法。