我做的程序直接连接服务器的连接如下:
string strConnection = "server='10.10.200.21';uid='saveEnergy';pwd='saveEnergySJZDST';database='saveEnergy'";
SqlConnection objConnection = new SqlConnection(strConnection);
return objConnection;
现在用户是用代理服务器上网的,代理服务器需要手工设置(就像IE需要在连接-局域网设置-代理器中的那样),
怎么用C#穿透代理服务器呢?在网上找了一些资料,但是不明白 放到哪里呢,请大家帮帮忙1.获取IE当前缺省的代理服务器信息(物理上其实存储在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\的ProxyEnable和ProxyServer),地址和端口号可以获取,但用户名和密码还是必须通过设置来获取
2.设置WebRequest的Proxy属性,绑定到有效的Proxy对象
我自己封装了一个方法,无论是直接连接还是通过代理服务器都可以自适应:
public static void ProxySetting(WebRequest request)
{
WebProxy proxy = WebProxy.GetDefaultProxy();//获取IE缺省设置
//如果缺省设置为空,则有可能是根本不需要代理服务器,如果此时配置文件中也未配置则认为不需Proxy
if (proxy.Address == null && Sys.ProxyAddress != null && Sys.ProxyAddress != "")
proxy.Address = new Uri(Sys.ProxyAddress);//按配置文件创建Proxy 地置
if (proxy.Address != null)//如果地址为空,则不需要代理服务器
{
proxy.Credentials = new NetworkCredential(Sys.ProxyUser, Sys.ProxyKey);//从配置封装参数中创建
request.Proxy = proxy;//赋予 request.Proxy
}
}
调用:
request = (HttpWebRequest)WebRequest.Create(http://abc.com/def.xml);
ProxySetting(request);//加在获取响应前
request.GetResponse();
配置文件可能如下,读回后被Sys封装:
<add key="ProxyAddress" value="" />
<add key="ProxyUser" value="msuser" />
<add key="ProxyKey" value="hello" />
string strConnection = "server='10.10.200.21';uid='saveEnergy';pwd='saveEnergySJZDST';database='saveEnergy'";
SqlConnection objConnection = new SqlConnection(strConnection);
return objConnection;
现在用户是用代理服务器上网的,代理服务器需要手工设置(就像IE需要在连接-局域网设置-代理器中的那样),
怎么用C#穿透代理服务器呢?在网上找了一些资料,但是不明白 放到哪里呢,请大家帮帮忙1.获取IE当前缺省的代理服务器信息(物理上其实存储在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\的ProxyEnable和ProxyServer),地址和端口号可以获取,但用户名和密码还是必须通过设置来获取
2.设置WebRequest的Proxy属性,绑定到有效的Proxy对象
我自己封装了一个方法,无论是直接连接还是通过代理服务器都可以自适应:
public static void ProxySetting(WebRequest request)
{
WebProxy proxy = WebProxy.GetDefaultProxy();//获取IE缺省设置
//如果缺省设置为空,则有可能是根本不需要代理服务器,如果此时配置文件中也未配置则认为不需Proxy
if (proxy.Address == null && Sys.ProxyAddress != null && Sys.ProxyAddress != "")
proxy.Address = new Uri(Sys.ProxyAddress);//按配置文件创建Proxy 地置
if (proxy.Address != null)//如果地址为空,则不需要代理服务器
{
proxy.Credentials = new NetworkCredential(Sys.ProxyUser, Sys.ProxyKey);//从配置封装参数中创建
request.Proxy = proxy;//赋予 request.Proxy
}
}
调用:
request = (HttpWebRequest)WebRequest.Create(http://abc.com/def.xml);
ProxySetting(request);//加在获取响应前
request.GetResponse();
配置文件可能如下,读回后被Sys封装:
<add key="ProxyAddress" value="" />
<add key="ProxyUser" value="msuser" />
<add key="ProxyKey" value="hello" />
解决方案 »
- asp.net连接本地或者远程oracle数据库
- "sqlcommand语句" 与 "传递大个儿参数" 执行效率比较
- 在C语言中定义的" HANDLE " 变量函数 如何把这个函数转换成C#的啊 ??? C#中好象没有handle 类型的定义啊??
- 如何像WINRAR那样以队列同时压缩多个文件
- c# listbox 问题
- 求教:C#中有没有延时函数啊,比如Sleep,Delay之类的
- vs2010 installer 如何添加卸载程序
- C# ctrl键松开怎么响应
- VS2008调用本机MSDN帮助
- 自动出卷系统的一些问题
- c#结构指针的问题,急~~~~
- 菜鸟来了,大家来抢分:关于C#的WINDOWS窗口
http get
socks4
socks5自己用 socket 实现这些协议, 网上搜搜, 有的参照
还有 SQL 连接串里允许配置 代理信息的。。
proxy.Address()获得代理服务器的IP地址和端口号
然后在sql连接串里配置,如果配置呢,请高手指点
这个不清楚, 你可以查一下.不过把数据库通过这种方式暴露出来, 是很严重的安全隐患.