【问题标题】:obtaining proxy from PAC proxy requiring authentication从需要身份验证的 PAC 代理获取代理
【发布时间】:2012-07-11 23:55:06
【问题描述】:

我正在尝试使用WinHttpGetProxyForUrl,其中WINHTTP_AUTOPROXY_OPTIONS.lpszAutoConfigUrl 指定的PAC 文件需要HTTP 基本身份验证才能访问。

有什么方法可以弹出常规身份验证对话框或提供用于代理的用户名和密码?

【问题讨论】:

    标签: winapi proxy winhttp pac


    【解决方案1】:

    WinInet 支持自动凭据对话处理。在 WinHTTP 中,您必须提供一种方法来自己获取用户的用户名和密码,并将其传递给WinHttpSetCredentials 或类似的函数。我会从WinHttpGetProxyForUrl 检查返回值ERROR_WINHTTP_LOGIN_FAILURE,然后询问用户的凭据。此时您可以尝试以下任一方法将这些凭据传递给 WinHTTP:

    1. 使用WinHttpSetOptionWINHTTP_OPTION_USERNAMEWINHTTP_OPTION_PASSWORD 设置用户名和密码并调用WinHttpGetProxyForUrl
    2. 或者调用WinHttpGetProxyForUrl 并为lpszAutoConfigUrl 参数提供一个包含凭据的URL。 (即http://user:pass@intranet/)。

    如果您没有使用基本身份验证,我建议您查看fAutoLogonIfChallenged,但这对您没有用处。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-02
      • 2012-04-07
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多