Я разговариваю с webservice через webrequest, я за прокси-сервером, который требует аутентификации.
Что я хотел бы сделать, это отключить настройки IE/Control Panel, но у меня есть некоторые трудности...
если я это сделаю, все в порядке...
WebProxy proxy = new WebProxy(@"http://my.secret.address:8080");
proxy.Credentials = CredentialCache.DefaultNetworkCredentials;
WebRequest.DefaultWebProxy = proxy;
То, что я действительно хочу сделать, это просто...
WebRequest.DefaultWebProxy = WebRequest.GetSystemWebProxy(); // Subsequent webrequest call Fails with a "Unable to connect to remote server" error message.
Я действительно не хочу указывать адрес прокси-сервера, так как это не то же самое для всех пользователей. На самом деле некоторые даже не будут за прокси. Я просто хочу использовать настройки IE/Control Panel. О, я использую Vista в случае, если это имеет значение, а также параметры прокси-сервера в панели управления /IE используют файл автоматической конфигурации (файл proxy.pac).
Изменить: так лаконично. Как использовать настройки прокси-сервера IE/Control Panel. В том числе при использовании файла конфигурации Auto?
Дальнейшее редактирование:
Хорошо, я думаю, что я сузил проблему до свойства Auto Config. Если у меня есть адрес прокси, явно установленный в диалоговом окне, я могу использовать настройки .GetSystemWebProxy()... но (как в моем случае), если я использую файл Auto Config pac, у меня есть эта проблема.
вздох, ну после большего исследования я исправил эту проблему, чтобы получить другую...
Исправление состоит в том, чтобы создать WebProxy с помощью .pac Uri
WebProxy proxy = new WebProxy(@"http://blahblah/proxy.pac);
Легкий peasy...
Итак, теперь я прохожу через прокси-сервер, но прокси-сервер возится с моим запросом, а веб-сервис - бархатистом. (Обратите внимание, что это не делает, если я имею в виду прокси-адрес.... вздох)
В .NET 1.0 вы можете использовать:
WebRequest.DefaultWebProxy = WebProxy.GetDefaultProxy();
В 2.0, DefaultWebProxy должен содержать настройки прокси-сервера IE по умолчанию, поэтому этот метод устарел.
http://www.west-wind.com/WebLog/posts/2542.aspx содержит дополнительную информацию.
ОБНОВЛЕНИЕ. К сожалению, теперь метод .NET 2.0:
WebRequest.DefaultProxy = WebRequest.GetSystemWebProxy();
http://msdn.microsoft.com/en-us/library/system.net.webrequest.getsystemwebproxy.aspx