WebProxy и аутентификация в Vista

2

Я разговариваю с 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, у меня есть эта проблема.

alt text http://img40.imageshack.us/img40/5635/57955210.jpg

  • 0
    Какой именно вопрос?
  • 0
    ммм, я думал, что это ясно .. я отредактирую вопрос.
Теги:
proxy
windows-vista

2 ответа

1
Лучший ответ

вздох, ну после большего исследования я исправил эту проблему, чтобы получить другую...

Исправление состоит в том, чтобы создать WebProxy с помощью .pac Uri

WebProxy proxy = new WebProxy(@"http://blahblah/proxy.pac);

Легкий peasy...

Итак, теперь я прохожу через прокси-сервер, но прокси-сервер возится с моим запросом, а веб-сервис - бархатистом. (Обратите внимание, что это не делает, если я имею в виду прокси-адрес.... вздох)

1

В .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

  • 0
    Я собирался ответить на то же самое. Этот устаревший метод не работает в моих обстоятельствах. Я начинаю думать, что .GetSystemWebProxy () делает то же самое, что и этот вызов.
  • 0
    Но тогда какое исключение это бросает? И GetSystemWebProxy - новый, поэтому я думаю, что произошли какие-то изменения.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню