Решение проблемы, требующей проверки подлинности прокси

#delphi #proxy #wininet #proxy-authentication

#delphi #прокси #wininet #прокси-аутентификация

Вопрос:

Я написал приложение на Delphi, которому требуется связь с удаленным веб-сервером. Я передаю флаг INTERNET_OPEN_TYPE_PRECONFIG в функцию InternetOpen, чтобы инициализировать использование моим приложением функций WinInet и, таким образом, мое приложение извлекает конфигурацию Интернета пользователя из реестра.

   NetHandle := InternetOpen('WebTool', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if Assigned(NetHandle) then
  begin
    try
      hConnect := InternetConnect(NetHandle, PChar(ServerName), ServerPort,
                      nil, nil, INTERNET_SERVICE_HTTP, 0, 1);
      if Assigned(hConnect) then
      begin
        try
          // Open the request
          hRequest := HttpOpenRequest(hConnect, PChar('POST'),
                          PChar(ServerScript), nil, nil, nil,
                          HTTPOpenRequestFlags, 0);
          if Assigned(hRequest) then
          begin
  

Возможно, из-за моего невежества я полагал, что это позволяет осуществлять связь с удаленным веб-сервером, используя определенные пользователем настройки Интернета, будь то прямое подключение или через прокси. Это, безусловно, работает через прокси-сервер моей компании.

Однако теперь я столкнулся с одним клиентом, для которого вышеуказанное не позволяет ему получить доступ. Вместо этого он видит «Требуется проверка подлинности прокси» (код состояния HTTP 407).

Должно ли это обрабатывать мое приложение (например, предоставить форму для ввода данных аутентификации прокси-сервера и передачи их с моими HTTP-запросами)? Есть ли способ получить эту информацию автоматически?

Или это просто проблема конфигурации, которую ИТ-отдел заказчика может легко решить?

Любые указания были бы высоко оценены.

Комментарии:

1. чтобы получить справку, добавьте код, который вы используете для получения информации о прокси.

Ответ №1:

Возможно, вам потребуется выполнить проверку подлинности, в зависимости от того, какие методы аутентификации поддерживает прокси-сервер (об этом будет сказано в ответе 407). Смотрите http://msdn.microsoft.com/en-us/library/aa384220 (ВЕРСИЯ 85).aspx