powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему не происходит proxy-аутентификация?
5 сообщений из 5, страница 1 из 1
Почему не происходит proxy-аутентификация?
    #39207387
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.

Windows 7 SP1.
.NET Framework 4.6.1.
Доменная сетка.
Доступ к Интернет - через прокси (все Веб-браузеры на компьютере соответствующим образом сконфигурированы).

Требуется загрузить файл из Интернета. Я пытаюсь настроить WebClient так, чтобы он читал настройки Proxy из Интернет-браузера, используемого на машине по умолчанию, а так же настройки Credential текущего процесса. Ожидал, что этого будет достаточно для успешного скачивания файла... Однако я получаю исключение (см. комментарии в коде):

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
static void Main(string[] args) {
    String file_name = Path.GetRandomFileName();
    String full_path = Environment.ExpandEnvironmentVariables(
        Path.Combine(@"%LocalAppData%\Temp", file_name));

    using (WebClient client = new WebClient()) {
        IWebProxy proxy = WebRequest.DefaultWebProxy;
        client.Credentials = CredentialCache.DefaultCredentials;
        client.Proxy = proxy;
        try {                    
            client.DownloadFile(@"https://yadi.sk/i/jPScGsw9qiSXU", full_path);
        }
        catch (Exception ex) {
            // The remote server returned an error: (407) Proxy Authentication Required.
            Console.WriteLine(ex.Message);
        }
    }
    Console.WriteLine("Press any key for exit.");
    Console.ReadKey();
}


Что я сделал неверно?

Спасибо.
...
Рейтинг: 0 / 0
Почему не происходит proxy-аутентификация?
    #39207416
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositum, попробуйте в конфи файле прописать:
Код: xml
1.
2.
3.
4.
<system.net>
    <defaultProxy useDefaultCredentials="true" >
    </defaultProxy>
</system.net>
...
Рейтинг: 0 / 0
Почему не происходит proxy-аутентификация?
    #39207450
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,

Так ведь я то же самое в коде сделал. В дальнейшем мой код будет работать в составе расширения (DLL), подгружаемого в основное (не моё) приложение. Мне бы не хотелось править чужой конфиг.

Я подправил свой код и теперь получаю др. ошибку: (502) Bad Gateway ...

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
static void Main(string[] args) {
    String file_name = Path.GetRandomFileName();
    String full_path = Environment.ExpandEnvironmentVariables(
        Path.Combine(@"%LocalAppData%\Temp", file_name));

    using (WebClient client = new WebClient()) {
        client.Credentials = CredentialCache.DefaultCredentials;
        var proxyUri = WebRequest.GetSystemWebProxy().GetProxy(
            new Uri("https://yadi.sk/i/jPScGsw9qiSXU"));
        client.Proxy = new WebProxy(proxyUri);
        try {
            client.DownloadFile(proxyUri, full_path);
        }
        catch (Exception ex) {
            // The remote server returned an error: (502) Bad Gateway.
            Console.WriteLine(ex.Message);
        }
    }
    Console.WriteLine("Press any key for exit.");
    Console.ReadKey();
}
...
Рейтинг: 0 / 0
Почему не происходит proxy-аутентификация?
    #39207475
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я вижу, настройки цепляются верно:



Но тем не менее получаю ошибку (502) Bad Gateway.
...
Рейтинг: 0 / 0
Почему не происходит proxy-аутентификация?
    #39207501
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получилось. Если кому интересно, то рабочий вариант такой:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
static void Main(string[] args) {
    String file_name = Path.GetRandomFileName();
    String full_path = Environment.ExpandEnvironmentVariables(
        Path.Combine(@"%LocalAppData%\Temp", file_name));

    using (WebClient client = new WebClient()) {
        String uri = "https://yadi.sk/i/jPScGsw9qiSXU";
        var proxyUri = WebRequest.GetSystemWebProxy()
            .GetProxy(new Uri(uri));
        client.Proxy = new WebProxy(proxyUri);
        client.Proxy.Credentials = CredentialCache.DefaultCredentials;
        try {
            client.DownloadFile(uri, full_path);
        }
        catch (Exception ex) {
            Console.WriteLine(ex.Message);
        }
    }
    Console.WriteLine("File: {0}", full_path);
    Console.WriteLine("Press any key for exit.");
    Console.ReadKey();
}
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему не происходит proxy-аутентификация?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]