首页 / 知识
关于asp.net:是否有与IE的ClearAuthenticationCache等效的浏览器?
2023-04-13 10:27:00

Is there a browser equivalent to IE's ClearAuthenticationCache?我这里有一些内部的.net Web应用程序,要求用户"注销"它们。 我知道这在Intranet应用程序上似乎没有意义,但是尽管如此。 我们正在为Intranet应用程序使用Windows身份验证,因此我们使用基本身份验证将Active Directory绑定到Active Directory,并且将凭据存储在浏览器缓存中,而不是使用.net表单身份验证时的cookie。 在IE6 +中,您可以通过执行以下操作来利用它们创建的特殊JavaScript函数:
但是,对于要支持的其他浏览器(目前为Firefox,但我努力支持多浏览器),我只是向用户显示一条消息,他们需要关闭其浏览器以退出应用程序, 有效刷新应用程序缓存。 有人知道一些命令/黑客/等。 我可以在其他浏览器中使用来刷新身份验证缓存? 我提出了一个似乎相当一致但很棘手的修复程序,但我对此仍然不满意。 它确实可以工作:-) 1)将他们重定向到注销页面 2)在该页面上触发脚本以用虚假凭据(另存为jQuery中的样本)来ajax加载另一个页面:
3)总是应该在第一次返回401(以强制传递新的凭据),然后仅接受虚拟凭据(MVC中的示例):
4)现在,随机字符串凭证已被浏览器接受并缓存。当他们访问另一个页面时,它将尝试使用它们,然后失败,然后提示输入正确的页面。
Mozilla实现了可通过DOM 加密对象似乎是Web加密API的实现,根据此文档,DOMCrypt API将添加更多功能。
如上所述,Microsoft IE(6或更高版本)具有: 我没有找到在Chrome中清除SLL缓存的方法(请参阅此错误报告)。 如果浏览器不提供任何API来执行此操作,我认为我们最好的方法是指示用户关闭浏览器。 这是我的工作:
几个注意事项。一些人说过,您需要使用无效的凭据来触发ajax请求,以使浏览器删除其自己的凭据。 的确如此,但是正如Keith指出的那样,服务器页面必须接受这些凭据才能使此方法始终有效,这一点至关重要。 类似的注意:您的页面仅通过401错误显示登录对话框是不够的。如果用户从对话框中取消,则其缓存的凭据也不会受到影响。 另外,如果可以的话,请通过以下网址戳MOZILLA:https://bugzilla.mozilla.org/show_bug.cgi?id = 287957为FireFox添加适当的修复程序。在https://bugs.webkit.org/show_bug.cgi?id=44823上记录了一个Webkit错误。 IE使用以下方法实现了较差但实用的解决方案:
不幸的是,我们仅需注销登录即可使用这些长度。 我一直在寻找类似的解决方案,并遇到了Trac(问题管理系统)的补丁程序。 我已经看过代码了(我很累,所以我不解释所有内容);基本上,您需要使用可确保无效凭据的AJAX调用来登录您的登录页面。浏览器将得到一个401,并且知道下次访问该浏览器时需要询问您正确的凭据。您使用AJAX而不是重定向,以便可以指定不正确的凭据,并且浏览器不会弹出对话框。 在补丁(http://trac-hacks.org/wiki/TrueHttpLogoutPatch)页面上,他们使用非常基本的AJAX。像jQuery或Prototype等更好的东西可能会更好,尽管这可以完成工作。 为什么不使用FormsAuth,而是根据此线程中的信息,而是针对ActiveDirectory。与基本身份验证一样(不安全),但注销仅是清空cookie的问题(或者调用FormsAuthentication.SignOut)。 好吧,我已经在Bugzilla上浏览了一段时间,并且看来清除身份验证的最佳方法是发送不存在的凭据。 在此处阅读更多信息:https://bugzilla.mozilla.org/show_bug.cgi?id=287957 希望这将是有用的,直到有人真正给出明确的答案为止-两年前在留言板上讨论了此问题。 高温超导 |
最新内容
相关内容
Python可以做桌面应用程序吗
Python可以做桌面应用程序吗,平台,系统,较大,标准,培训,界面,桌面,文档,入门,开发者,python可以做桌面应用程序!目前比较主流的几个GUI平台:1python怎么定义用户输入
python怎么定义用户输入,培训,字符串,整数,类型,用户,文本,定义,文档,小数点,位数,python中获取用户输入的方法如下:整数输入#!/usr/bin/pythopython怎么打开浏览器
python怎么打开浏览器,培训,标准,网址,模块,以上,方法,更多,内容,python打开浏览器的三种方法1.通过导入os模块,调用startfile方法来打开浏pythonWeb开发和图形用户界面的模
pythonWeb开发和图形用户界面的模块有哪些?,网站,工具,互动,平台,培训,设计,模块,用户界面,图形,框架,关于PythonWeb开发和图形用户界面的模块python浏览器能运行python吗
python浏览器能运行python吗,代码,平台,智能,培训,灵活,项目,文件,语法,插件,浏览器,py文件不是html文件,当然不能在浏览器里打开。py文件可以python如何获取用户输入
python如何获取用户输入,培训,字符串,整数,类型,文本,文档,用户,小数点,位数,以上,python整数输入#!/usr/bin/python3usr_ip=input("Enteran您将如何在 Ruby on Rails 应用程
您将如何在 Ruby on Rails 应用程序中使用 rSpec 测试观察者?,您将如何在 Ruby on Rails 应用程序中使用 rSpec 测试观察者?,应用程序浏览器的默认CSS样式表
浏览器的默认CSS样式表,浏览器的默认CSS样式表,默认,浏览器,样式表,浏览,Browsers' default CSS stylesheets是否有针对不同浏览器关于安全性:禁用浏览器“保存密码”
关于安全性:禁用浏览器“保存密码”功能,关于安全性:禁用浏览器“保存密码”功能,医疗保健,政府,机构,我会,Disable browser 'Save PaJava:确定当前Windows用户的编程方
Java:确定当前Windows用户的编程方式,Java:确定当前Windows用户的编程方式,登录,用户名,用户,查找,Java: Programatic Way to Determin关于.net:使用System.DirectoryServ
关于.net:使用System.DirectoryServices对域用户进行身份验证,关于.net:使用System.DirectoryServices对域用户进行身份验证,编程,验关于vb.net:如何在64位应用程序和VB
关于vb.net:如何在64位应用程序和VB2008 Express上启用“编辑并继续”功能?,关于vb.net:如何在64位应用程序和VB2008 Express上启用“