我们的一个Web应用程序是使用基本身份验证并使用AngularJS进行构建。为了测试这个应用程序,我使用Protractor,它使用Selenium与浏览器进行通信。
在Chrome中,一切正常,基本身份验证很简单:
username:password@host.ext
在Internet Explorer下,具有密码和用户名的URL预计会带来安全风险,因此不允许使用。在Internet Explorer 9之前,可以在注册表(FEATURE_HTTP_USERNAME_PASSWORD_DISABLE)
中关闭此设置。为Internet Explorer 10设置此注册表项时,行为会更改(不显示错误,并且在没有用户名和密码的情况下重写URL)但该功能看起来已损坏。 Internet Explorer 11显示与Internet Explorer 10相同的行为。
有没有人有不同的解决方法来绕过这个问题?
答案 0 :(得分:13)
我升级到Internet Explorer 10也是对64位Internet Explorer的升级。由于某种原因,64位变体使用另一个寄存器密钥:
HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Internet Explorer/MAIN/FeatureControl/FEATURE_HTTP_USERNAME_PASSWORD_DISABLE
在此注册表项中设置值为DWORD
的{{1}} iexplore.exe
可解决此问题。
64位变体也非常慢,切换回32位是解决这种缓慢问题的不错选择。 IE的64位变体仅用于0
的64位变体。使用IEDriverServer.exe
32位,可以切换回IE 32位。
要完成,32位的寄存器键是:
IEDriverServer.exe