我们的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相同的行为。
(FEATURE_HTTP_USERNAME_PASSWORD_DISABLE)
有谁有其他解决方法来绕过此问题?
我对Internet Explorer 10的升级也是对64位Internet Explorer的升级。由于某种原因,64位变体使用另一个寄存器密钥:
HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Internet Explorer/MAIN/FeatureControl/FEATURE_HTTP_USERNAME_PASSWORD_DISABLE
在此注册表项中设置DWORD iexplore.exewith值0可解决此问题。
DWORD
iexplore.exe
0
64位变体的速度也很慢,切换回32位是解决此慢速的好选择。IE的64位变体仅与的64位变体一起使用IEDriverServer.exe。使用IEDriverServer.exe32位,可以切换回IE 32位。
IEDriverServer.exe
完整地说,32位寄存器的密钥是:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Internet Explorer/MAIN/FeatureControl/FEATURE_HTTP_USERNAME_PASSWORD_DISABLE