2008-09-24 75 views
3

我们正在开发一个.NET 2.0 winform应用程序。该应用程序需要访问Web Services。但是,我们遇到与代理背后的用户有关的问题。.NET客户端应用程序:如何在代理中访问Web服务?

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

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

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

我们应该如何强制在启动IE时不提示用户输入用户名和密码?

回答

11

把这个应用程序的配置文件:

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

和您的应用程序将使用代理服务器设置从IE浏览器。如果您可以使用代理服务器在IE中查看您的Web服务,则应该能够从应用程序中“查看”它。

0

最简单的方法是使用IE浏览器的代理设置。

1

使用.NET WebProxy类进行调查。它支持自动选择正确的默认设置。

2

使用WebProxy和WebRequest类。将它包装到您自己的图书馆中一次,然后在任何需要使用代理的地方使用。

0

如果你打开IE,点击确定进入代理对话框,然后(让IE打开)尝试连接你的winforms应用程序,然后你的应用程序工作?或者,无论如何,你的应用程序无法处理代理?

0

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

0

我认为提问者明白他必须使用WebProxy,如果用户需要代理,问题是“我如何获得IE的代理设置,所以我不必要求用户输入他们到我的应用程序作为好?”

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

相关问题