我有一個經典的ASP網站,使用會話變量來存儲登錄狀態ie。 userid,isloggedin等。在註銷時,會話變量被重置,並且Session.Abandon()被調用,然後被重定向到登錄頁面。在IE7中,我注意到在註銷後,我可以輸入以前訪問過的URL並查看在註銷之前似乎是其狀態的緩存版本。點擊ctl-f5將再次從服務器重新加載並重定向到登錄頁面。這是我想要發生的行爲,即使沒有ctl-f5輸入url也是如此。有誰知道如何得到這種行爲?IE7經典ASP緩存
4
A
回答
4
設置no-cache標頭,以便頁面不首先被緩存。見:
1
我以前遇到過類似問題,但每當我點擊該網頁上的鏈接,它讓我重新登錄
你可以嘗試要麼復位會話ID。 =「」或sessionID =「XYZ」,並使XYZ在註銷時忽略您的代碼。
你也可以嘗試設置no-cache標頭。
0
你可以發送no-cache,但是這只是一個安靜的表現,只是爲了得到你想要的東西。我更喜歡Liams的建議,並確保您在該頁面上做的所有事情都需要您登錄,這樣,沒有人可以做任何他們不應該做的事情。如果它的電子郵件系統雖然或類似,但人們「可以」查看其他人的電子郵件,那麼在那些情況下是的,而不是緩存敏感信息是要走的路(例如,你不能默認緩存HTTPS頁面)。
您還可以在頭部添加一些javascript,以檢查是否存在「已登錄」Cookie。這會在每次加載頁面時運行,如果沒有cookie存在,那麼JS可以將您重定向到登錄頁面。不是100%的證明,但足夠好。你註銷頁面需要清除這個cookie,並在你的登錄頁面設置它。
2
我認爲mkoryak的答案(使用no-cache標頭)似乎是最好的。如果您只想在用戶登錄時看到某些頁面,最好的方法是指示瀏覽器不要緩存該頁面。此外,諸如調整cookie和使用javascript等方案確定客戶端的登錄狀態只是重新發明輪子。
如果你想利用一些緩存,並且你的頁面不是不斷更新的,那麼一個很好的折衷辦法是將Response.Expires
標題設置爲你認爲合適的值(我認爲它是以分鐘爲單位的度量)。
相關問題
- 1. ie7和經典asp中的UTF8問題
- 2. 經典Asp + Ajax進銷存
- 3. 存儲過程經典asp
- 4. XSS減緩HTML/VBScript中/經典的ASP
- 5. 在ASP經典
- 6. swfupload +經典asp
- 7. 經典ASP Response.redirect
- 8. 經典asp cint
- 9. XPath經典ASP
- 10. 經典ASP:在應用上下文中緩存XML文檔
- 11. 經典ASP應用範圍的初始化和對象緩存
- 12. 是否有經典的ASP的緩存腳本?
- 13. 經典ASP緩存無效(但仍滿足Speed得分)
- 14. 經典asp中的split()asp
- 15. 瞭解經典ASP
- 16. Asp經典和ajax
- 17. 經典ASP連接
- 18. SQL與asp經典
- 19. 經典Asp日期
- 20. 經典的ASP + Javascript
- 21. 經典的ASP - BOF
- 22. 經典ASP加密
- 23. 生成ASP經典
- 24. CalDAV和經典ASP
- 25. 的VBScript/ASP經典
- 26. 經典ASP對象
- 27. AzMan和經典ASP
- 28. 經典的asp - cdonts
- 29. 參考經典ASP
- 30. DotNetOpenAuth +經典ASP + oAuth