我可以检测某些浏览器(IE)设置(不更改,检测)吗?

时间:2012-03-01 22:49:07

标签: javascript html internet-explorer trusted-sites internet-options

我刚看这个stackoverflow问题:Display web browser settings

这有帮助。

但是,我很好奇我是否可以检测某些特定于IE的设置。我正在考虑高级选项卡中的一些内容(例如,启用“启用集成Windows身份验证”)?

或者我们的网站被添加为可信站点?在可信站点设置中,设置了“使用当前用户名和密码进行Atomatic登录”?

我不想改变它们(我认为这将是一个可以被利用的巨大问题)。我只是希望能够呈现给用户:

“嘿,您需要选中或取消选中这些设置才能使网站正常运行。请执行以下操作:a,b,c ...或与您的管理员联系”。

这可能吗?

3 个答案:

答案 0 :(得分:2)

我认为您无法在网站中查询这些设置。能够这样做可能会带来安全漏洞。

我确定可以通过使用间接证据来确定某些设置(例如,如果JavaScript未执行,则可能禁用脚本)。但我不认为有适当的API来轮询每个设置;我想你能做的最好的事情就是为用户提供一些建议。 (比如,“右下方栏中的xyz符号应该显示一个绿色的复选标记......选项对话框中的abc复选框应该取消选中...等等”)

答案 1 :(得分:1)

您无法直接检查设置,但可以测试功能。如果您尝试对服务器进行身份验证并发现您没有正确传递其凭据,则表示它未正确配置。此时,您可以向他们显示有关如何连接到站点的信息。无论如何,这将是一个更好的解决方案,因为您最好不要测试功能而不是特定设置。

答案 2 :(得分:1)

要提醒您的问题,看起来您正在尝试找出IE是否配置为自动将NTLM凭据发送到您的服务器。

不幸的是,没有办法干净地检测到这一点。我最初的想法是将JavaScript文件放在受保护的目录中,该目录只是设置一个全局变量,并链接到<head>中的该脚本。 (<script src="protected-dir/test.js"></script> - protected-dir仅适用于匿名身份验证关闭的集成身份验证。)如果脚本加载,则设置变量;如果失败,变量显然不是。页面上的另一个脚本可以检查变量并显示一条消息,如果它没有设置。

当在客户端上正确配置所有内容时,这可以完美地工作,但是当自动登录关闭时,这会导致ugly 401 dialog弹出,这显然不好。此外,如果规范specifically says the browser should ask for credentials获得401,则XHR请求不是答案。

可悲的是,我认为没有办法自动确定是否启用自动登录而不会导致弹出401对话框。