【问题标题】:Will I be able to tell a Hosted Internet Explorer Web Browser control to always bypass the proxy settings?我能否告诉托管 Internet Explorer Web 浏览器控件始终绕过代理设置?
【发布时间】:2011-03-16 13:54:15
【问题描述】:

以下场景:

  • 拥有托管的 IE Web 浏览器控件和应用内 Web 服务器(如 this one)。
  • 网络服务器在(例如)http://127.0.0.1:14284 运行,网络浏览器调用此 URL。

现在我们有一个客户在 IE 选项中配置了代理服务器,并且还检查了“绕过本地地址上的代理”。

不幸的是,托管的 IE Web 浏览器控件仍然使用代理设置,即使对于本地 URL http://127.0.0.1:14284

我的问题是:

我是否能够以某种方式告诉我的托管网络浏览器始终直接调用我的托管网络服务器,不通过代理?

(我找到了this thread,但仍然不确定如何将其应用于我的问题)

【问题讨论】:

    标签: c# proxy webbrowser-control


    【解决方案1】:

    我认为您必须进行一些互操作,因为文档说您可以使用 InternetSetOption 函数禁用代理。有a lot of flags你可以传递给这个你需要INTERNET_OPTION_PROXY或INTERNET_OPTION_PER_CONNECTION_OPTION的函数,还有一个kb-article描述了如何设置代理设置。

    希望对你有所帮助:)

    【讨论】:

    • 谢谢@AntiLamer - 目前我无法在我正在调用的WebBrowser.NavigateInternetSetOption 方法调用之间划清界限。我看不出这有任何关系。
    • @Uwe Keim 正如您写的那样,您的客户设置“绕过本地地址上的代理”但网络浏览器仍在使用代理,所以我想解决这个问题的一种方法是禁用代理,当然仅用于您的控制/过程。因为.Net 框架没有任何类或方法,所以您可以使用影响所有 Internet Explorer 实例的 InternetSetOption 函数,包括 webbrowser 控件。但这只是简单的理论,我没有测试过。
    • 谢谢@AntiLamer - 如果我设法为本地进程调用InternetSetOption(没有管理员权限),Web 浏览器控件会自动使用这些选项吗?
    • 似乎passing IntPtr.Zero for the HINTERNET handle 适用于整个过程——这实际上是我想要的。我想我会试一试。希望这不需要管理员权限。
    猜你喜欢
    • 2011-01-31
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 2013-10-27
    • 2010-11-12
    • 2014-04-12
    相关资源
    最近更新 更多