Winapi 从NPAPI插件获取用户的代理凭据

Winapi 从NPAPI插件获取用户的代理凭据,winapi,proxy,npapi,wininet,Winapi,Proxy,Npapi,Wininet,我有一个NPAPI插件(Windows/Win32),可以从服务器下载zip文件。 如果客户端位于代理后面,则它不起作用。 如何通过我的NPAPI插件从用户处获取代理凭据? 我使用HttpQueryInfo通过查询代理的状态来检测代理的存在。如果返回“407”,我将使用InternetErrorDlg从用户处获取凭据,但Chrome(29.0.1547.66 m)在遇到该行时崩溃。FF(19.0.2)运行良好 还有其他方法吗?是否提示用户输入代理凭据? 在这方面的任何帮助都将不胜感激 非常感谢,

我有一个NPAPI插件(Windows/Win32),可以从服务器下载zip文件。 如果客户端位于代理后面,则它不起作用。 如何通过我的NPAPI插件从用户处获取代理凭据? 我使用HttpQueryInfo通过查询代理的状态来检测代理的存在。如果返回“407”,我将使用InternetErrorDlg从用户处获取凭据,但Chrome(29.0.1547.66 m)在遇到该行时崩溃。FF(19.0.2)运行良好

还有其他方法吗?是否提示用户输入代理凭据? 在这方面的任何帮助都将不胜感激

非常感谢,
LazyCoder7.

如果使用浏览器API下载,那么代理应该可以正常工作(tm)。您可以使用这种方式在较新的浏览器上获取代理信息;除非您需要记住,您不允许阻止主线程,这可能是您正在执行的操作导致它崩溃。使用HTML或其他东西获取凭据,然后将其传递进来;只要您使用另一个线程,并且非常小心,就可以使用windows对话框来执行此操作,但使用javascript/html处理此操作要容易得多。

您使用什么来完成下载?NPN_GetURL?我有这个插件的Windows、Mac和Linux版本,对于每个平台,我都使用NativeCode。对于Win32,我使用InternetOpenUrl、HttpQueryInfo和InternetReadFileFunctions下载文件。感谢Taxillan,我也在考虑同样的事情,只需点击一个URl并检查代理是否存在,从Html本身获取凭据并传递给插件。此外,我还将检查您提到的“不阻止主线程”部分我将尝试调用另一个线程的对话框。我在编写代码时没有碰到这个东西。非常感谢这一点。最后,在开发的初始阶段,我使用NPN_GETURL下载了该文件。但在那段时间里,我遇到了一些问题,比如它从缓存中检索文件(如果存在)。这是不可取的。我没有回避这个问题,还有很多其他问题我都不记得了。于是,他们被迫在各自的平台上使用本机API。@LazyCoder7,由于插件的进程已满,浏览器需要利用黑客来查看您何时在主线程上运行模式对话框,以了解何时应该在主进程中旋转自己的事件循环,而不是杀死您的插件以挂起。这很脆弱,不同的浏览器覆盖不同的对话框类型。。。正如你在Firefox和Chrome之间发现的那样。最好的办法是不要这样做——在网站上覆盖这一点并将信息传递给插件绝对是最可靠的方法。奖金-它与平台无关。@GeorgFritzsche,谢谢你的提示。是的,我会按照你建议的方式,也会按照Taxlian提到的方式。这将是一个真正通用的解决方案,而不是摆弄消息循环。