程序通过认证代理访问网络?

solohac 2011-08-04 04:55:23
公司的内网是通过认证代理服务器上网(也就是要输入账号密码的那种)
知道账号密码,代理服务器的情况下
我写的程序能不能不要每次启动都弹出框要求输入账号密码
(可以保存密码,我就是不喜欢老是弹,很烦)

wininet 之类的能支持这么做吗?
...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
solohac 2011-08-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 oyljerry 的回复:]

C/C++ code
//Download http file through proxy
//--------------------------------------------------------------------------------
To find details about Proxy Authentication and ……
[/Quote]

我尝试通过InternetSetOption把账号密码设置在由InternetOpen返回的HINTERNET中。
但是没有成功
服务器返回信息为:
认证失败!@#@!@!¥!@¥@!~#!
solohac 2011-08-06
  • 打赏
  • 举报
回复
一直忙,做别的事情,终于有时间继续做这个。
这个是正常的匿名代理,没有涉及到认证代理(就是要账号密码的,不知道你们怎么称呼。英文又是什么)
[Quote=引用 2 楼 visualeleven 的回复:]

VC下如何利用代理服务器进行信息交换
通过代理上网的vc http客户端
[/Quote]
solohac 2011-08-04
  • 打赏
  • 举报
回复
果然神速,我先看看
Eleven 2011-08-04
  • 打赏
  • 举报
回复
HINTERNET InternetConnect(
__in HINTERNET hInternet,
__in LPCTSTR lpszServerName,
__in INTERNET_PORT nServerPort,
__in LPCTSTR lpszUsername,
__in LPCTSTR lpszPassword,
__in DWORD dwService,
__in DWORD dwFlags,
__in DWORD_PTR dwContext
);
Eleven 2011-08-04
  • 打赏
  • 举报
回复
oyljerry 2011-08-04
  • 打赏
  • 举报
回复
//Download   http   file   through   proxy 
//--------------------------------------------------------------------------------
To find details about Proxy Authentication and Sever Authentication methed in MSDN,
Just search for the keyword "INTERNET_OPTION_USERNAME ".
a very simple example.
CString GeHttptFile(const char *url)
{
CString szContent;
char strProxyList[MAX_PATH], strUsername[64], strPassword[64];
//in this case "proxya " is the proxy server name, "8080 " is its port
strcpy(strProxyList, "proxya:8080 ");
strcpy(strUsername, "myusername ");
strcpy(strPassword, "mypassword ");
DWORD dwServiceType = AFX_INET_SERVICE_HTTP;
CString szServer, szObject;
INTERNET_PORT nPort;
AfxParseURL(url, dwServiceType, szServer, szObject, nPort);
CInternetSession mysession;
CHttpConnection* pConnection;
CHttpFile* pHttpFile;
pConnection = mysession.GetHttpConnection(szServer,
INTERNET_FLAG_KEEP_CONNECTION,
INTERNET_INVALID_PORT_NUMBER,
NULL, NULL);
pHttpFile = pConnection-> OpenRequest( "GET ", szObject,
NULL, 0, NULL, NULL,
INTERNET_FLAG_KEEP_CONNECTION);
//here for proxy
INTERNET_PROXY_INFO proxyinfo;
proxyinfo.dwAccessType = INTERNET_OPEN_TYPE_PROXY;
proxyinfo.lpszProxy = strProxyList;
proxyinfo.lpszProxyBypass = NULL;
mysession.SetOption(INTERNET_OPTION_PROXY, (LPVOID)&proxyinfo, sizeof(INTERNET_PROXY_INFO));
pHttpFile-> SetOption(INTERNET_OPTION_PROXY_USERNAME, strUsername, strlen(strUsername)+1);
pHttpFile-> SetOption(INTERNET_OPTION_PROXY_PASSWORD, strPassword, strlen(strPassword)+1);

pHttpFile-> SendRequest(NULL);
DWORD nFileSize = pHttpFile-> GetLength();
LPSTR rbuf = szContent.GetBuffer(nFileSize);
UINT uBytesRead = pHttpFile-> Read(rbuf, nFileSize);
szContent.ReleaseBuffer();
pHttpFile-> Close();
delete pHttpFile;
pConnection-> Close();
delete pConnection;
mysession.Close();
return szContent;
}

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧