Удаленный сервер возвратил ошибку 407 требуется аутентификация посредника

Если вам необходимо выполнить запрос информации для отправки по определенному URI, вам необходимо воспользоваться классом

      Если вам необходимо выполнить запрос информации для отправки по определенному URI, вам необходимо воспользоваться классом «WebRequest». При выполнении запроса через «WebRequest» используются настройки прокси, прописанные в Internet Explorer. Если прокси-сервер использует Active Directory-авторизацию, то необходимо указать в запросе использование разрешений пользователя по умолчанию. Для этого необходимо присвоить свойству «Proxy.Credentials», системные учетные данные приложения из свойства «System.Net.CredentialCache.DefaultCredentials». Код инициализации представлен ниже.

System.Net.WebRequest request =
System.Net.WebRequest.Create("http://адрес сайта");
//Указываем системные учетные данные приложения.
request.Credentials =
System.Net.CredentialCache.DefaultCredentials;
//Указываем сетевые учетные данные текущего контекста безопасности.
request.Proxy.Credentials =
System.Net.CredentialCache.DefaultCredentials;

      Если учетные данные не указаны, вы получите сообщение об ошибке «Удаленный сервер возвратил ошибку: (407) Требуется проверка подлинности посредника.»:

Свойство DefaultCredentials представляет системные учетные данные для текущего контекста безопасности, в котором выполняется приложение. Для приложения на стороне клиента это обычно учетные данные Windows (имя пользователя, пароль и домен), относящиеся к пользователю, запустившему приложение (Microsoft MSDN).

      Так же вы можете указать свои учетные данные при подключении, для этого необходимо инициализировать новый экземпляр класса «System.Net.NetworkCredential» с тремя заданными параметрами:

  • userName — Имя пользователя, связанное с учетными данными. 
  • password — Пароль для имени пользователя, связанный с учетными данными.
  • Domain- Домен, связанный с этими учетными данными.
request.Proxy.Credentials =
new System.Net.NetworkCredential(@"userName", @"password ", "Domain");

      Ниже приведен пример отправки интернет-запроса сайту «http://csharpcoderr.com/» и получение значения true, если и клиент, и сервер прошли проверку подлинности; в противном случае — false.

System.Net.WebRequest request =
System.Net.WebRequest.Create("http://адрес сайта/");
//Указываем системные учетные данные приложения.
request.Credentials =
System.Net.CredentialCache.DefaultCredentials;
//Указываем сетевые учетные данные текущего контекста безопасности.
request.Proxy.Credentials =
System.Net.CredentialCache.DefaultCredentials;
//Получаем ответ на интернет-запрос.
System.Net.WebResponse response = request.GetResponse();
//Выводим полученный ответ от сервера в сообщении.
MessageBox.Show(
//Получаем значение true, если и клиент, и сервер прошли
//проверку подлинности; в противном случае — false.
(response.IsMutuallyAuthenticated == true) ?
"Аутентификация не выполнена" :
"Аутентификация выполнена");
//Если объект ответа больше не нужен,
//его следует закрыть методом Close().
response.Close(); 

      Результатом выполнения данного примера будет сообщение со статусом выполнения аутентификации.

Удаленный сервер возвратил ошибку: (407) Требуется проверка подлинности посредника: Справочник по C#

0.00 (0%) votes

требуется проверка подлинности посредника

  • Автор темы

    BageeRa

  • Дата начала

    11.05.2018

  • #1

Привет форумчане. У меня проблема с программой — АРМ . Не получается обновить данные с серверов в интернете. При попытке обновления получаю сообщение:

Ошибка запроса актуальных версий
Ошибка обработки запроса:
Ошибка передачи сообщения: Удаленный сервер возвратил ошибку: (407) Требуется проверка подлинности посредника

Что я только ни делала — она не работает и все. Подскажите из за чего ошибка и что за посредник мне нужен?

image_57.jpg

  • #2

Это проблема с подключением. Видимо ваше ПО выходит в интернет через прокси-сервер. Это и есть посредник между серверами вашей программы и вами-клиентом АРМ. Т.е. по сути программа не может установить зашифрованное соединение. Попробуйте поковырять настройки соединения в АРМ если они имеются, если нет то попробуйте выпустить АРМ в интернет минуя прокси сервер, или сделайте исключение на проксе. Вариантов масса.

  • #4

ошибка установления https сессии это

  • На данном сайте используются cookie-файлы, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
    Продолжая использовать этот сайт, Вы соглашаетесь на использование наших cookie-файлов.

Что такое Proxy Authentication Required или Error 407? – это сбой в работе прокси сервисов, которые используются в программах VPN, например, FriGate. Кроме того, ошибка 407 может возникнуть в ряде других программ, которые подключаются к сети через прокси лист: Visual Studio, Key Collector и другие. Однако, наибольшее беспокойство доставляет ошибка HTTP 407 при работе с бесплатными VPN сервисами.

Как исправить Error 407 Proxy Authentication Required? Как настроить компьютер, чтобы решить проблему? Есть ли аналоги программ, которые работают без Proxy? Что делать, если status code 407 Proxy Authentication Required не исчезает? К слову, эта ошибка очень похожа на ошибку 401, только в этом случае ошибка на вашей стороне, а не на стороне сервера. Посмотрите подробный отчет для действий.

Вы спокойно ищите нужную информацию в своем браузере и тут натыкаетесь на ошибку 407. Окошко может иметь разные уведомления, но чаще всего все сводится к следующему: «The request with HTTP status 407: Proxy Authentication Required”. Данное уведомление сообщает, что между вами и сервером возникла ошибка. Причем ошибка 407 возникает только на стороне клиента, т.е. пользователя.

Ошибка 407 FriGate

Ошибка 407 FriGate

Чаще всего проблема возникает при использовании плагина FriGate – дополнения, которое работает с помощью прокси. Для чего оно у вас стоит? Скорее всего, вы пытаетесь зайти на сайт, который заблокирован провайдером, роскомнадзором или другими органами, которые контролируют интернет трафик. FriGate – это посредник между вашим браузером и сайтом, который вы хотите открыть. Работает он по принципу VPN. Подключаясь к нему, вы создаете видимость подключения из другой страны.

Например, вы хотите попасть на сайт, который закрыт провайдером. Устанавливая FriGate вы подменяете свое настоящее местоположение фиктивным. Провайдер видит трафик, но обращение идет на посторонний сервер. Не будем углубляться в детали – суть одна, FriGate не работает, и вы видите ошибку 407. В чистом браузере ошибка http 407 возникнуть просто не может. Она возникает только ввиду не работающего соединения с прокси.

Что делать, если в браузере возникла ошибка 407? Как устранить Error 407 Authentication Required? Ниже список шагов, которые актуальны именно для проблемы, которая возникла на стороне браузера.

  • Если вы использовали платный прокси – выйдите из аккаунта и войдите снова;
  • Если вы использовали FriGate – отключите плагин и удалите его из браузера. Затем установите более свежие и обновляемые VPN сервисы. На крайний случай можно использовать платные VPN или установить браузер Opera? Перейти в приватный режим и включить кнопку VPN в адресной строке. Эффект тот же – ошибка 407 вас больше не затронет.
  • Если в браузере чисто – закройте программу VPN. Возможно сервер с прокси сегодня не доступен или сама программа перестала корректно работать.
  • Установите для теста бесплатную версию платных прокси серверов или VPN сервисов. Если проблема устранена – отлично, проблема ясна.
  • Используйте платные прокси. Стоит это дёшево и если есть на, то необходимость, можно потратить в месяц 1$ для стабильности в трафике.
  • Пройдите на сайт определения IP адреса. Если у вас выдает ваш стандартный местный ip адрес – у вас проблемы с VPN 100%.

ВАЖНО: Ошибка 407 возникает ТОЛЬКО со стороны вашего компьютера. Сайт, на который вы не можете зайти тут не при чем! Ошибка возникает ТОЛЬКО если у вас установлены дополнения, прокси сервисы или VPN.

Не нужно «лечить» компьютер перезагрузкой или переустановкой системы. Когда у вас болит палец на ноге, вы же не лечите проблему свечами от геморроя? Так и здесь. Таблетка от проблемы и шаги к исправлению ошибки 407 Proxy Authentication Required указаны выше. Ни реестр, ни система, ни антивирус тут ни при чем. Действуйте.

  1. Ошибка 407 в программах, работающих через Proxy

Предположим вы – вебмастер. У вас установлена программа Key Collector, которая работает через прокси для безопасности аккаунтов в Яндекс и Google. Кроме того, программа использует прокси лист для ускорения работы парсера.  Вы купили прокси и ввели их в настройках. Другие программы работают по аналогичному принципу. В настройках вы прописываете адрес и данные авторизации.

Что означает ошибка 407 Proxy Authentication Required в программах? На самом деле все просто – либо вы ошиблись при вводе данных авторизации оплаченных прокси, либо ваш прокси лист закончился. Например, вы купили прокси 1 января до 1 марта. Естественно, что вы получите ошибку 407, если сегодня 2 марта. А еще, вы могли попытаться купить прокси как можно дешевле и получили не самый отзывчивый прокси сервер.

Для подобных программ стоит покупать проверенные прокси. Также следует не забывать, что на работе некоторые администраторы ставят защиту от использования подобных программ и прокси. Поэтому, если вы решили «подрабатывать» на работе – займитесь своими прямыми задачами.

Мы помогли вам решить вопрос? Удалось ли вам исправить HTTP 407 Proxy Authentication Required? Если остались вопросы – напишите нам в комментариях с деталями проблемы. В идеале прикрепить скриншот с ошибкой, чтобы наш специалист помог разобраться с проблемой.

Sh1ftya

0 / 0 / 0

Регистрация: 02.11.2014

Сообщений: 9

1

29.07.2016, 10:21. Показов 7129. Ответов 1

Метки нет (Все метки)


Добрый день, уважаемые форумчане. Решил изучить PowerShell по Windows PowerShell (Франк Кох) учебнику.

Есть код:

PowerShell
1
2
3
4
([xml](new-object net.webclient).DownloadString(  
"http://window.edu.ru/resource/459/61459"
)).rss.channel.item | 
Format-Table title,link

При запуске возникает ошибка:

Код

Исключение при вызове "DownloadString" с "1" аргументами: "Удаленный сервер возвратил ош
ибку: (407) Требуется проверка подлинности посредника."
C:TEMPpowershell_dont_touch_thishelloworld.ps1:1 знак:48
+ ([xml](new-object net.webclient).DownloadString <<<< (  
    + CategoryInfo          : NotSpecified: ( : ) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

Пробовал изменить настройки безопасности (как написано тут). Так же чистил кэш.
Но безрезультатно. Прошу помочь с проблемой. Может быть что-то по коду не так?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



OwenGlendower

Администратор

Эксперт .NET

15260 / 12297 / 4908

Регистрация: 17.03.2014

Сообщений: 24,903

Записей в блоге: 1

03.08.2016, 04:51

2

Sh1ftya, попробуй указать Credentials для запроса

PowerShell
1
2
3
4
$web = new-object net.webclient
$web.Credentials = [Net.CredentialCache]::DefaultNetworkCredentials
([xml]$web.DownloadString("https://www.cyberforum.ru/external.php?type=RSS2&amp;forumids=366")).rss.channel.item |
    Format-Table title,link

Я подставил другую ссылку т.к. твоя не является RSS лентой



0



  • Remove From My Forums
  • Общие обсуждения

  • Всем привет!

    Нарот подскажите что не так, код:

    private void Form1_Shown(object sender, EventArgs e)
    
     {
    
      richTextBox1.Clear();
    
      var Client = new System.Net.WebClient();
    
      System.Net.WebProxy Proxy = new System.Net.WebProxy("ххх.ххх.ххх.ххх", хххх);
    
      Client.Proxy = Proxy;
    
      Client.UseDefaultCredentials = true;
    
      string[] Quotes = null;
    
      try
    
      {
    
      Quotes = Parse(Client.DownloadString("http://bash.org.ru"));
    
      }
    
      catch (System.Net.WebException ex)
    
      {
    
      
    
      }
    
    
    
      bool Colored = false;
    
      foreach (string s in Quotes)
    
      {
    
      if (Colored)
    
      {
    
       richTextBox1.SelectionColor = Color.Blue;
    
       richTextBox1.AppendText(s + "nn");
    
       Colored = false;
    
      }
    
      else
    
      {
    
       richTextBox1.SelectionColor = Color.Black;
    
       richTextBox1.AppendText(s + "nn");
    
       Colored = true;
    
      }
    
      }
    
     }
    
    
    
     private string[] Parse(string Text)
    
     {
    
      ArrayList Quotes = new ArrayList();
    
      string[] Strings = Text.Split('n');
    
      bool BeginCapture = false;
    
      bool BeginQuote = false;
    
      foreach (string s in Strings)
    
      {
    
      if (s.Trim() == "<div class="vote">")
    
      {
    
       BeginCapture = true;
    
      }
    
      if (BeginCapture)
    
      {
    
       if (s.Trim() == "</div>")
    
       {
    
       BeginCapture = false;
    
       BeginQuote = true;
    
       }
    
      }
    
      if (BeginQuote)
    
      {
    
       if (s.Contains("<div>") & s.Contains("</div>"))
    
       {
    
       string Temp = s.Trim();
    
       Temp = Temp.Substring(5, Temp.Length - 6);
    
       Temp = Temp.Substring(0, Temp.Length - 5);
    
       Quotes.Add(Temp);
    
       BeginQuote = false;
    
       }
    
      }
    
      }
    
      string[] Result = new string[Quotes.Count];
    
      for (int i = 0; i < Quotes.Count; i++)
    
      {
    
      Result[i] = (Quotes[i] as string).Replace("&quot;", """).Replace("<br>", "n");
    
      }
    
      return Result;
    
     }
    
    

    в методе Client.DownloadString возникает исключение, содержимое ex:

    {«Удаленный сервер возвратил ошибку: (407) Требуется проверка подлинности посредника.»}

    Что не так?

    Куда копать?

    Сеть доменная, прокся, браузер аутентифицируется под текущей учеткой.

    • Изменено

      19 апреля 2011 г. 11:14

    • Изменен тип
      Abolmasov Dmitry
      5 июня 2011 г. 6:55

Im trying to download files from google disk.
Auth Class:

internal static class Perm_AppData
{
    private static string[] scopes = { DriveService.Scope.DriveFile };
    private static DriveService service = Autorization();
    internal static DriveService Service { get { return service; } }

    private static DriveService Autorization()
    {
        UserCredential credential;

        using (var stream = GetCliSecStream())
        {
            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                scopes,
                "user",
                CancellationToken.None,
                new FileDataStore(auth, true)).Result;
        }

        return new DriveService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = applicationName
        });
    }

    private static Stream GetCliSecStream()
    {
        var stream = new MemoryStream();
        var writer = new StreamWriter(stream);
        writer.Write(uSec);
        writer.Flush();
        stream.Position = 0;
        return stream;
    }
}

After that, I chose an account and confirmed the rights of the application. Next is the request to download the file

internal static MemoryStream DownloadFile(string fileId = null, string fileName = null)
{
    using (new Watcher($"Download {fileName} {fileId}"))
    {
        GetRequest request = null;
        if (fileId != null)
        {
            request = service.Files.Get(fileId);
        }
        else
        {
            if (fileName != null)
            {
                request = service.Files.Get(ViewDrive(SearchParameter.name, new string[] { fileName }).First().Id);
            }
            else
            {
                throw new Exception("You need at least one not null parameter to download");
            }
        }

        request.Fields = "id, name";
        var fileMemoryStream = new MemoryStream();
        request.Download(fileMemoryStream);
        return fileMemoryStream;
    }
}

Downloading the file throws an exception (System.Net.WebException: The remote server returned an error: (407) Requires proxy authentication):

Error: System.TypeInitializationException: Инициализатор типа
«Updater.UnDloadAP I» выдал исключение. —>
System.TypeInitializationException: Инициализатор типа
«Updater.Perm_AppData» выдал исключение. —>
System.AggregateException: Произо шла одна или несколько ошибок. —>
System.Net.Http.HttpRequestException: Произо шла ошибка при отправке
запроса. —> System.Net.WebException: Удаленный сервер возвратил
ошибку: (407) Требуется аутентификация посредника. в
System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult
asyncResult, Tra nsportContext& context) в
System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult
ar)

— Конец трассировки внутреннего стека исключений — в
Google.Apis.Http.ConfigurableMessageHandler.d__55.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение — в
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) в
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNoti
fication(Task task) в
Google.Apis.Auth.OAuth2.Requests.TokenRequestExtenstions.d__0
.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение — в
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) в
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNoti
fication(Task task) в
Google.Apis.Auth.OAuth2.Flows.AuthorizationCodeFlow.d__35.
MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение — в
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) в
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNoti
fication(Task task) в
Google.Apis.Auth.OAuth2.Flows.AuthorizationCodeFlow.d__30.MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение — в
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) в
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNoti
fication(Task task) в
Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp.d__8.
MoveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение — в
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) в
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNoti
fication(Task task) в
Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__4.M
oveNext()
— Конец трассировка стека из предыдущего расположения, где возникло исключение — в
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) в
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNoti
fication(Task task) в
Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__1.M
oveNext() — Конец трассировки внутреннего стека исключений —
в System.Threading.Tasks.Task.ThrowIfExceptional(Boolean
includeTaskCanceledE xceptions) в
System.Threading.Tasks.Task1.GetResultCore(Boolean
waitCompletionNotificat ion) в
System.Threading.Tasks.Task
1.get_Result() в
Updater.Perm_AppData.Autorization() в C:UsersUserDocumentsVisual
Studio ProjectsSMNoteUpdaterClassesAPIPerm_AppData.cs:строка 27

I need something like:

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;

I do not get an error if I connect to the Internet without a proxy
Post updated #1:
The following code normally passes through the proxy

var request = (HttpWebRequest)WebRequest.Create(link);
request.Credentials = CredentialCache.DefaultCredentials;
request.Proxy.Credentials = CredentialCache.DefaultCredentials;

Therefore, I believe that you need to somehow manually add a proxy to the request for google drive

Post updated #2:
The following code normally passes through the proxy

internal static void DoIt()
{
    try
    {
        var t = DownloadPageAsync();
        Console.WriteLine("Downloading page...");
        Console.WriteLine(t.Result);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

private static async Task<string> DownloadPageAsync()
{
    var proxy = WebRequest.DefaultWebProxy;
    proxy.Credentials = CredentialCache.DefaultCredentials;
    var httpClientHandler = new HttpClientHandler()
    {
        Proxy = proxy
    };
    using (HttpClient client = new HttpClient(httpClientHandler))
    {
        using (HttpResponseMessage response = await client.GetAsync("https://mail.ru"))
        {
            using (HttpContent content = response.Content)
            {
                string result = await content.ReadAsStringAsync();
                return result.Substring(0, 50);
            }
        }
    }
}

Понравилась статья? Поделить с друзьями:
  • Увеличение уровня благосостояния лексическая ошибка
  • Уаз патриот как сбросить ошибку абс
  • Угол наклона фар bmw f30 ошибка
  • Удаленный сервер возвратил ошибку 403 запрещено тарков
  • Увеличение размера выборки используют для снижения какой ошибки