2011-06-02 136 views
0

我想從IE7 檢索代理用戶名和密碼,這裏是我的代碼檢索IE代理服務器的用戶名和密碼

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與INTERNET_OPTION_PROXY工作正常。但是,當我將它與INTERNET_OPTION_PROXY_USERNAME或INTERNET_OPTION_PROXY_PASSWORD一起使用時,它會因dwSize等於0而失敗。GetLastError函數返回錯誤代碼12018. 任何想法爲什麼這些函數失敗?

回答

0

這些功能只有在用戶已經通過身份驗證(通過在彈出提示中鍵入憑據)在當前進程內進行身份驗證時纔有效。直到他們這樣做,WinINET 沒有代理憑據,並且結果將爲空。

如果代理僅通過NTLM或Kerberos依賴用戶當前的Windows登錄憑據,結果也將爲空。

+0

感謝您的回覆。我已經對代理進行了身份驗證。此外,用戶名和密碼已通過在彈出提示中記住密碼選項進行保存。此外,「當前流程內」是什麼意思?你能解釋一下它的工作原理嗎?還是有其他的選擇嗎? – Mahantesh 2011-06-03 05:09:53

相關問題