2011-06-02 114 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

相关问题