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

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

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


person Bevan Collins    schedule 12.07.2012    source источник


Ответы (1)


Автоматическая обработка диалогового окна учетных данных поддерживается только в Виннет. В 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, но это вам бесполезно.

person Nathan Moinvaziri    schedule 22.07.2012