我正在尝试通过WebBrowser控件访问网页(不受我控制)allscripts sandbox。已为上述网页正确设置了我计算机的Internet Explorer(在“受信任的站点”中添加,允许并安装了所有active-x插件,以兼容模式运行等)。
webbrowser控件显示以下错误:
此网页要运行“某些ActiveX控件”,该控件与Internet Explorer的增强的安全功能不兼容。如果您信任此站点,则可以为此站点禁用“增强保护模式”,并允许控件运行。
据我所知,我尚未启用增强的保护模式。
也尝试忽略错误并继续登录会显示一条消息
基于.NET的页面的Centricity容器初始化失败。确保您的.NET环境已配置为授予对此网站“完全信任”。
在我运行命令%WINDIR%\Microsoft.NET\Framework\v2.0.50727\caspol -q -m -cg Trusted_Zone FullTrust
之前,以上也是默认IE上的错误。
我尝试了各种注册表项,但似乎都不起作用。
我还尝试实现了一个自定义IInternetSecurityManager,它将所有URL映射到Trusted区域,并在所有ProcessUrlAction调用上返回URLPOLICY_ALLOW。
任何建议将不胜感激。
答案 0 :(得分:0)
问题可能是网络浏览器默认使用旧版本的IE。看看Use latest version of Internet Explorer in the webbrowser control
答案 1 :(得分:0)
webbrowser控件由用COM包装器包装的ie11包装,该包装器将ie11调回到ie7模式。我可以想象会导致您出现问题的其他地方。
由于在外部运行ie11时此页面为您工作,因此最可能的解释似乎是您试图将控件强制进入ie11模式。 我建议您在这里尝试Mentor的代码:
Set WPF webbrowser control to use IE10 mode
这将自动将正在运行的程序的名称添加到注册表中。
var pricipal = new System.Security.Principal.WindowsPrincipal(
System.Security.Principal.WindowsIdentity.GetCurrent());
if(pricipal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator)) {
RegistryKey registrybrowser = Registry.LocalMachine.OpenSubKey
(@"Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION", true);
string myProgramName = Path.GetFileName(System.Reflection.Assembly.GetExecutingAssembly().Location);
var currentValue = registrybrowser.GetValue(myProgramName);
if (currentValue == null || (int)currentValue != 0x00002af9)
registrybrowser.SetValue(myProgramName, 0x00002af9, RegistryValueKind.DWord);
}
else
this.Title += " ( Первый раз запускать с правами админа )";