【问题标题】:Determining browser Proxy setting in NPAPI to download page SSL certificate确定 NPAPI 中的浏览器代理设置以下载页面 SSL 证书
【发布时间】:2011-05-30 21:08:22
【问题描述】:

用户可以通过代理建立连接。一些使用系统范围的代理设置,另一些使用浏览器范围的代理。

例如,在 Windows 上,您可以拥有系统代理设置以及 Firefox 或 Chrome 的代理设置。因此依赖系统代理设置是不可靠的。

唯一合乎逻辑的解决方案是使用加载我的插件的浏览器正在使用的任何代理设置。如果 Firefox 正在加载我的插件并且它有一些代理设置,我的插件也应该使用这些设置进行连接。我需要我的插件来下载加载插件的页面的 SSL 证书(用于进一步验证..等)。

在 NPAPI 中是否有某种方法可以做到这一点,或者我必须使用 Windows WinInet 或 WinHTTP 之类的 API,或者用于 Linux 和 Mac 的 OpenSSL?如果我必须这样做,那么我怎样才能让我的插件使用主机浏览器正在使用的任何代理设置?我正在检查 NPN_GetValueForURL,但我不认为它具有良好的兼容性和良好的浏览器互操作性。

谢谢你们!

【问题讨论】:

    标签: c++ firefox plugins openssl npapi


    【解决方案1】:

    我很确定NPN_GetURLNotify() 将使用浏览器的代理设置。如果没有,那就太疯狂了。

    更新

    如果您正在编写基于 NPAPI 的插件,则需要使用 NPN_Get/Post 函数来执行 HTTP 请求。这将使用主机的代理设置、cookie 等。这些功能的存在正是出于这个原因;我不知道您为什么要使用 Wininet 或自己滚动。

    查看 about:config,Firefox 似乎将代理设置存储在 network.proxy.* 中。您可以通过Preferences Service 以编程方式访问这些设置。我想您可以将 Wininet 配置为相同的行为,但您仍然遇到 cookie 问题。

    【讨论】:

    • 但是它如何给我代理设置的详细信息? (所以我可以使用 WinInet 代码的设置,例如)
    • 您无法从 NPAPI 插件访问首选项(或任何其他浏览器内部服务),所以这是不行的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2018-05-04
    • 2015-06-21
    • 2010-09-21
    • 2016-08-24
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多