设置系统代理&&在Windows上使用C ++进行身份验证

时间:2014-11-27 17:42:12

标签: c++ windows windows-7 proxy proxy-authentication

在C ++中是否有办法将Windows系统代理设置为具有身份验证凭据,以便立即影响所有正在运行的程序(浏览器等等),但是:

  1. 不需要重新启动任何浏览器
  2. 不需要浏览器重新验证
  3. 我正在寻找系统级预认证代理。

    感谢您的帮助。如果不清楚,请询问任何问题。

    使用:c ++ 11,Windows 7

    编辑1:我需要以编程方式设置,因此请不要建议任何手动操作。
    编辑2:部分可接受是一种如何在没有预认证的情况下以编程方式设置代理但仍保持1.要求(不需要重新启动任何浏览器)的方法

1 个答案:

答案 0 :(得分:0)

系统级代理设置位于\Software\Microsoft\Windows\CurrentVersion\Internet Settings hive HKLM hive下的所有用户和HKCU hive for当前用户的注册表中。 有一个官方instruction如何通过REG文件更改它,您不需要编写任何代码。

但主要问题是:任何应用程序都可能有自己的代理设置,1)可以首选系统级设置但允许用户覆盖它,2)根本不使用系统设置

在企业环境中,此问题解决为:

  1. Internet网关不允许直接访问除代理服务器(Microsoft ISA / Forefront Web代理)之外的任何计算机的外部网络
  2. 注册表中的代理设置通过组策略强制所有计算机
  3. 如果用户需要运行无法使用系统范围代理设置的应用程序,则需要安装ISA防火墙客户端,该客户端拦截所有流量并在ISA代理上对其进行身份验证。
  4. 因此,当您使用完整的Microsoft软件堆栈时 - 您仍然不需要编写任何代码:-) 此外,ISA防火墙客户端使用undocumented Windows features并且要用自己的" C ++ 11"来编写替换它的东西太难了。技能。