我正在尝试使用WinHttpGetProxyForUrl
指定的 PAC 文件WINHTTP_AUTOPROXY_OPTIONS.lpszAutoConfigUrl
需要 HTTP 基本身份验证才能访问的地方。
是否有某种方法可以弹出常规身份验证对话框或提供用于代理的用户名和密码?
仅WinInet支持自动凭据对话框处理。在 WinHTTP 中,您必须提供一种方法来自己获取用户的用户名和密码并将其传递给WinHttpSetCredentials
或类似的函数。我会检查ERROR_WINHTTP_LOGIN_FAILURE
from的返回值,WinHttpGetProxyForUrl
然后询问用户的凭据。此时,您可以尝试以下任一方法将这些凭据传递给 WinHTTP:
WinHttpSetOption
withWINHTTP_OPTION_USERNAME
和WINHTTP_OPTION_PASSWORD
设置用户名和密码并调用WinHttpGetProxyForUrl
。WinHttpGetProxyForUrl
并提供参数。lpszAutoConfigUrl
(即http://user:pass@intranet/
)。如果您没有使用基本身份验证,我建议您查看 fAutoLogonIfChallenged
,但这对您没有用。