Получение прокси от прокси PAC, требующего аутентификации

Я пытаюсь использовать WinHttpGetProxyForUrl где файл PAC указан WINHTTP_AUTOPROXY_OPTIONS.lpszAutoConfigUrl для доступа требуется базовая аутентификация HTTP.

Есть ли способ вызвать всплывающее диалоговое окно обычной аутентификации или указать имя пользователя и пароль для использования прокси?

1 ответ

Автоматическая обработка диалога с учетными данными поддерживается только в WinInet. В WinHTTP вы должны предоставить способ самостоятельно получить имя пользователя и пароль и передать их WinHttpSetCredentials или аналогичная функция. Я бы проверил на возвращаемое значение ERROR_WINHTTP_LOGIN_FAILURE от WinHttpGetProxyForUrl а затем запросите учетные данные пользователя. В этот момент вы можете попробовать одно из следующих действий, чтобы передать эти учетные данные WinHTTP:

  1. использование WinHttpSetOption с WINHTTP_OPTION_USERNAME а также WINHTTP_OPTION_PASSWORD установить имя пользователя и пароль и вспомнить WinHttpGetProxyForUrl,
  2. Или вспомнить WinHttpGetProxyForUrl и поставлять lpszAutoConfigUrl параметр с URL, который содержит учетные данные. (т.е. http://user:pass@intranet/).

Если вы не используете базовую аутентификацию, я бы посоветовал взглянуть на fAutoLogonIfChallenged, но это бесполезно для вас.

Другие вопросы по тегам