检索IE代理用户名和密码

时间:2011-06-02 11:00:33

标签: http wininet

我想从IE7中检索代理用户名和密码 这是我的代码

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; 
     }
}

使用INTERNET_OPTION_PROXY的InternetQueryOption工作正常。但是当我使用它与INTERNET_OPTION_PROXY_USERNAME或INTERNET_OPTION_PROXY_PASSWORD时,它失败,dwSize等于0. GetLastError函数返回错误代码12018。 知道这些功能失败的原因吗?

1 个答案:

答案 0 :(得分:1)

这些功能仅在用户已通过代理(通过在弹出提示中键入凭据)在当前进程内进行身份验证时才有效。在他们这样做之前,WinINET 没有代理凭据,结果将为空。

如果代理仅通过NTLM或Kerberos依赖用户当前的Windows登录凭据,结果也将为空。