2012-06-07 42 views
1

我遇到了通過使用JavaScript清除瀏覽器(FireFox和Chrome)之間的身份驗證緩存。如何使用JavaScript清除認證緩存?

通過引用來自此文章Link,使用XMLHttpRequest來清除非IE瀏覽器緩存的部分在我的情況下不起作用。

我正在尋找替代方法,任何建議?請幫助

謝謝您的高級。

回答

1

瀏覽器處理所提供證書的精確規則 - 如果從Javascript提供時將被保存,並且如果正確或不正確的嘗試將覆蓋身份驗證緩存,則不會在任何地方進行任何處理。

此外,開發人員傾向於考慮任何允許對存儲進行無人操作的操作,這通常需要用戶的手動交互,例如「你想保存密碼嗎?」。提示,因爲不安全並且即使由於某種原因在過去工作而立即堵塞孔。

因此,我建議不要依賴它,並且不要嘗試從腳本中清除/無效緩存。

1

我一直在尋找一個類似的解決方案,並且遇到了Trac(一個問題管理系統)的補丁。我已經看了代碼(我累了,所以我沒有解釋一切);基本上你需要做一個保證無效憑證的AJAX調用到你的登錄頁面。瀏覽器將得到一個401,並知道它需要問你下次去那裏時正確的憑據。您使用AJAX而不是重定向,以便您可以指定不正確的憑據,並且瀏覽器不會彈出對話框。

在補丁(http://trac-hacks.org/wiki/TrueHttpLogoutPatch)頁面上,它們使用非常基本的AJAX;像jQuery或Prototype等更好的東西可能會更好,雖然這可以完成工作。