以编程方式更改Internet Explorer设置?

以编程方式更改Internet Explorer设置?,第1张

概述以编程方式更改Internet Explorer设置

任何想法如何使用C#执行以下 *** 作?

去Tools -> Internet Options -> Security

selectSecurity选项卡

点击Custom Levelbutton

在Miscellaneous部分更改display mixed content为Enable

在windows窗体中注册MouseEnter / MouseLeave事件禁用控件?

如果存在Microsoft sql Server实例,则绕过sqlExpress的安装

C#中的扩展方法 – 这是正确的吗?

C# – 获取ManagementObjectSearcher输出到一个TextBox

UNIX和windows开发之间的区别

这样做的“作弊”方式是改变价值

HKEY_CURRENT_USER Software Microsoft windows CurrentVersion Internet Settings Zones 0 1609 HKEY_CURRENT_USER Software Microsoft windows CurrentVersion Internet Settings Zones 1 1609 HKEY_CURRENT_USER Software Microsoft windows CurrentVersion Internet Settings Zones 2 1609 HKEY_CURRENT_USER Software Microsoft windows CurrentVersion Internet Settings Zones 3 1609 HKEY_CURRENT_USER Software Microsoft windows CurrentVersion Internet Settings Zones 4 1609

其中0-4是区域标识符,值为0表示允许,1表示提示,3表示阻止。 请记住,如果您的代码在任何人的计算机上执行此 *** 作,而您自己的代码则可能会将您的代码视为恶意软件。

执行此 *** 作的“正确”方法是使用API​​创建IInternetZoneManager,然后调用SetZoneActionPolicy来调整要调整的区域中的URLACTION_HTML_MIXED_CONTENT的设置。

你不应该这样做“编程”。 这就是为什么没有它的API。 只有用户可以更改他们的安全设置,并且可以使用您已经发现的内置界面来完成。

可怜的IE团队一直在加紧工作,试图加强浏览器的安全性。 他们不会抛出像这样的东西,在几秒钟内就会使所有的努力无效。


回想一下,即使选择了这个选项,也会出现一个确认对话框 。 你如何建议以编程方式“点击”? (嗯,再次想到,不要告诉我,这可能是你会问的下一个问题。)

试图以编程方式做到这一点,并要求用户自己做。 请提供完整的帮助文件或其他文档,说明您为什么要求他们进行此更改,如果他们不选择进行此更改,哪些功能将不可用,以及进行此类更改可能存在哪些安全风险。 当然,关于如何进行更改的具体说明。

或者,更好的是,重新设计你的应用程序,以便它不需要对IE的安全设置进行系统范围的修改。 很难想象这是一个合法的案例。 更好的解决方案可能会要求用户将您的网站添加到他们的“受信任的网站”。 请记住,默认情况下本地页面与远程页面具有不同的安全设置。

另外不要忘记组策略。 大多数(如果不是全部的话)IE设置也可以在组策略中指定。 根据IE安全页面与Internet选项安全页面的本地组策略设置,组策略设置将覆盖用户定义的设置。 所以,在我的家用电脑(没有域控制器的工作),我可以选择通过本地组策略编辑器或通过Internet选项来定义IE设置。 例如,如果我运行gpedit.msc打开本地组策略编辑器,选择计算机配置 windows组件 Internet Explorer 互联网控制面板安全页互联网区域更改“显示混合内容”设置为“已启用”,然后选择“启用“下拉框中,单击应用,然后在IE中打开Internet区域的安全设置 – 我将看到”显示混合内容“更改为启用,并且选择被禁用,因为它被策略覆盖。 有关支持策略的完整列表,请从http://www.microsoft.com/zh-CN/download/details.aspx?ID=25250下载windowsserver2012和windows8GroupPolicySettings.xlsx

现在回到如何以编程方式更改设置的问题。 EricLaw正确地建议使用IInternetZoneManager中的SetZoneActionPolicy。 但是从C#中调用它很难找到样本。 我结束了复制http://www.pinvoke.net/default.aspx/Interfaces.IInternetZoneManager到我的代码,然后做:

//This will disable "Download signed ActiveX" (IE setting # 0x1001) for Internet Zone (zone #3) IInternetZoneManager izm = Activator.CreateInstance(Type.GetTypeFromCLSID(new GuID("7b8a2d95-0ac9-11d1-896c-00c04Fb6bfc4"))) as IInternetZoneManager; IntPtr pPolicy = Marshal.AllocHGlobal(4); Marshal.copy(new int[] { 3 },pPolicy,1);//3 means "disable" int result = izm.SetZoneActionPolicy((uint)UrlZone.Internet,(uint)0x1001,4,(uint)UrlZoneReg.CurrentUserKey); Marshal.ReleaseComObject(izm); Marshal.FreeHGlobal(pPolicy);

我也尝试以编程方式更改组策略。 我从https://bitbucket.org/MartinEden/local-policy使用库,然后:

//This will disable "Download signed ActiveX controls" computer policy for Internet Zone (zone #3) const string keyPath = @"SOFTWAREPolicIEsMicrosoftwindowsCurrentVersionInternet SettingsZones3"; var gpo = new LocalPolicy.ComputerGroupPolicyObject(); using (var machine = gpo.GetRootRegistryKey(LocalPolicy.GroupPolicySection.Machine)) { using (var terminalServicesKey = machine.CreateSubKey(keyPath)) { terminalServicesKey.SetValue("1001",3,Microsoft.Win32.RegistryValueKind.DWord); } } gpo.Save();

在使用IE 11在Win7 SP1上成功测试上面的代码后,我决定回到EricLaw的原始建议:直接修改HKEY_CURRENT_USER Software Microsoft windows CurrentVersion Internet Settings Zones * 1001,因为这是Microsoft推荐。 例如,请参阅如何在Internet Explorer或增强型浏览安全性中强化 本地计算机区域的安全设置

我不知道,但我想你可以在“注册表”中找到所有这些设置。 你需要找出适当的关键。 要改变这些价值,你需要有适当的权利。 注册表可以从.net代码访问

总结

以上是内存溢出为你收集整理的以编程方式更改Internet Explorer设置?全部内容,希望文章能够帮你解决以编程方式更改Internet Explorer设置?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272680.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存