Привет эксперты
Мне нужно отправить запрос http из приложения C ++, используя Wininet API.
Пользователь находится за прокси-сервером ISA, который настроен для использования встроенной проверки подлинности Windows.
Когда я получаю сообщение об ошибке 407 (требуется проверка подлинности прокси), я использую InternetErrorDlg, чтобы запросить учетные данные пользователя. Это не идеальное решение, поскольку IE может прозрачно использовать учетные данные текущего пользователя. Есть ли способ сделать это?
Пример кода для запроса
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());
}