嗨,專家 我需要使用wininet API從C++應用程序發送http請求。 用戶位於配置爲使用集成Windows身份驗證的ISA代理服務器的後面。 當我得到錯誤407(需要代理身份驗證)時,我使用InternetErrorDlg向用戶請求憑據。這不是一個理想的解決方案,因爲IE能夠透明地使用當前用戶的憑據。有沒有辦法做到這一點 ?對於要求集成Windows身份驗證Wininet
hRequest = HttpOpenRequest (
hConnect,
"POST",
query.c_str(),
HTTP_VERSION,
NULL,
cAcceptTypes,
INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE| INTERNET_FLAG_KEEP_CONNECTION,
0);
bRet = HttpSendRequest(
hRequest,
NULL,
0,
(LPVOID)dataXml.c_str(),
(DWORD)dataXml.length());
bRet = HttpQueryInfo(
hRequest,
HTTP_QUERY_FLAG_NUMBER | HTTP_QUERY_STATUS_CODE,
&dwStatus,
&dwSize,
NULL);
if (dwStatus == HTTP_STATUS_PROXY_AUTH_REQ)
{
ProxyAuthenticate(hRequest); // Here I call InternetErrorDlg
bRet = HttpSendRequest(
hRequest,
NULL,
0,
(LPVOID)dataXml.c_str(),
(DWORD)dataXml.length());
}
能告訴你一些示例代碼,WinInet的通常處理驗證自動使用本地憑證,除非您使用InternetSetOption明確禁用了身份驗證。 – 2011-04-28 20:11:36