是否有与IE的ClearAuthenticationCache等效的浏览器?

时间:2020-03-05 18:44:09  来源:igfitidea点击:

我这里有一些内部的.net Web应用程序,要求用户"注销"它们。我知道这在Intranet应用程序上似乎没有意义,但尽管如此。

我们正在为Intranet应用程序使用Windows身份验证,因此我们使用基本身份验证将Active Directory绑定到Active Directory,并且凭据将存储在浏览器缓存中,而不是使用.net表单身份验证时的cookie。

在IE6 +中,我们可以通过执行以下操作来利用它们创建的特殊JavaScript函数:

document.execCommand("ClearAuthenticationCache", "false")

但是,对于要支持的其他浏览器(目前为Firefox,但我努力支持多浏览器),我只是向用户显示一条消息,他们需要关闭其浏览器以退出应用程序,这有效刷新应用程序缓存。

有人知道一些命令/黑客/等。我可以在其他浏览器中使用来刷新身份验证缓存?

解决方案

回答

希望这将是有用的,直到有人在两年前在留言板上讨论了该问题的确切答案。

高温超导

回答

好吧,我已经在Bugzilla上浏览了一段时间,并且看来清除身份验证的最佳方法是发送不存在的凭据。

在此处阅读更多信息:https://bugzilla.mozilla.org/show_bug.cgi?id=287957

回答

为什么不使用FormsAuth,而是根据此线程中的信息,而是针对ActiveDirectory。与基本身份验证一样(不安全),但注销仅是清空Cookie的问题(或者调用FormsAuthentication.SignOut)。

回答

我一直在寻找类似的解决方案,并遇到了Trac(问题管理系统)的补丁程序。

我已经看完了代码(很累,所以我不解释所有内容);基本上,我们需要使用可确保无效凭据的AJAX调用来登录登录页面。浏览器将得到一个401,并且知道下次访问该浏览器时需要向我们询问正确的凭据。我们使用AJAX而不是重定向,以便我们可以指定不正确的凭据,并且浏览器不会弹出对话框。

在补丁(http://trac-hacks.org/wiki/TrueHttpLogoutPatch)页面上,他们使用非常基本的AJAX。像jQuery或者Prototype等更好的东西可能会更好,尽管这可以完成工作。