4

我们正在开发一个 .NET 2.0 winform 应用程序。应用程序需要访问Web 服务。然而,我们遇到了代理背后的用户问题。

流行的 Windows 备份应用程序(想想Mozy)提供了一个适度复杂的对话框窗口,专门用于代理设置。然而,重新实现另一个代理处理逻辑和 GUI 对我来说完全是浪费时间。

使用 .NET 客户端应用程序处理代理的最佳方法是什么?

更具体地说,我们有一个案例,用户在 Internet Explorer 中记录了他的代理设置(包括用户名和密码),因此.NET的默认代理行为应该可以工作。然而,在启动 IE 时仍会提示用户输入他的用户名和密码(这两个字段都已预先填写,用户只需单击确定) - 我们的 winform 应用程序仍然无法处理代理。

我们应该怎么做才能强制在启动 IE 时不提示用户输入用户名和密码?

4

7 回答 7

10

将其放入应用程序的配置文件中:

<configuration>
  <system.net>
    <defaultProxy>
      <proxy autoDetect="true" />
    </defaultProxy>
  </system.net>
</configuration>

并且您的应用程序将使用 IE 中的代理设置。如果您可以使用代理服务器在 IE 中看到您的 Web 服务,那么您应该能够从您的应用程序中“看到”它。

于 2008-09-24T14:04:19.713 回答
2

使用 WebProxy 和 WebRequest 类。一次将其包装到您自己的库中,并在您希望与代理一起使用的任何地方使用。

于 2008-09-24T13:57:09.527 回答
1

研究使用 .NET WebProxy类。它支持自动选择正确的默认设置。

于 2008-09-24T13:55:56.377 回答
0

最简单的方法是使用 IE Explorer 中的代理设置。

于 2008-09-24T13:52:21.347 回答
0

如果你打开 IE,点击 OK 到代理对话框,然后(让 IE 打开)尝试连接你的 winforms 应用程序,你的应用程序可以工作吗?还是您的应用无论如何都无法处理代理?

于 2008-09-24T16:00:07.157 回答
0

您遇到代理问题的客户是否都在同一个网络上(即他们都使用同一个代理服务器)?

于 2008-09-24T16:03:42.267 回答
0

我认为提问者明白如果用户需要代理,他必须使用 WebProxy,问题是“我如何获取 IE 的代理设置,这样我就不必要求用户也将它们输入到我的应用程序中?”

System.Net.WebProxy.GetDefaultProxy 已过时,您必须使用 System.Net.WebRequest.DefaultWebProxy。在http://msdn.microsoft.com/en-ca/magazine/cc300743.aspx上有一篇描述它的文章。

于 2008-09-27T00:48:08.327 回答