Chcę pobrać nazwę użytkownika i hasło proxy z IE7 Oto mój kod
CString UserName;
LPINTERNET_PROXY_INFO ProxyInfo;
DWORD dwSize;
InternetQueryOption(NULL,INTERNET_OPTION_PROXY,NULL,&dwSize);
if (dwSize > 0)
{
BYTE * lpszData = new BYTE [dwSize];
InternetQueryOption (NULL, INTERNET_OPTION_PROXY, lpszData, & dwSize);
ProxyInfo= (LPINTERNET_PROXY_INFO) lpszData;
InternetQueryOption (NULL, INTERNET_OPTION_PROXY_USERNAME, NULL, &dwSize);
if (dwSize> 0)
{
lpszData = new BYTE [dwSize];
InternetQueryOption (NULL, INTERNET_OPTION_PROXY_USERNAME, lpszData, &dwSize);
UserName = lpszData;
delete [] lpszData;
}
}
InternetQueryOption z INTERNET_OPTION_PROXYdziała w porządku. Ale kiedy używam go z INTERNET_OPTION_PROXY_USERNAME lub INTERNET_OPTION_PROXY_PASSWORD, nie działa z dwSize równym 0. Funkcja GetLastError zwraca kod błędu 12018. Masz pojęcie, dlaczego te funkcje zawodzą?
Odpowiedzi:
1 dla odpowiedzi № 1Funkcje te będą działać tylko wtedy, gdy użytkownik jest już uwierzytelniony na serwerze proxy (wpisując poświadczenia w wyskakującym okienku) w ramach bieżącego procesu. Dopóki tego nie zrobią, WinINET nie ma poświadczenia proxy, a wynik będzie pusty.
Wynik będzie również pusty, jeśli serwer proxy będzie polegał tylko na bieżących poświadczeniach logowania użytkownika do systemu Windows za pośrednictwem NTLM lub Kerberos.