我正在使用C#设计Windows窗体应用程序。当连接到Internet时,应用程序可以顺利地执行其功能,但是当我们在学院中尝试应用程序时,真正的问题就开始了。
我们的学院使用代理网关连接到网络。代理服务器是192.168.120.5
和代理端口8080
。每个学生都有一个唯一的用户名和密码。
如何才能领先于这个障碍?我正在尝试创建与目标IP的代理连接:
WebRequest request = WebRequest.Create("http://www.example.com");
request.Proxy = new WebProxy("192.168.120.5", 8080);
这会以任何方式帮助我吗?如果是,我在哪里输入用户名和密码凭证?
答案 0 :(得分:2)
是的,你可以使用它...虽然它可能更简单使用WebRequest.DefaultWebProxy
WebProxy proxyObject = new WebProxy("http://proxyserver:80/",true);
proxyObject.Credientials = new NetworkCredential(UserName, "bla");
WebRequest req = WebRequest.Create("http://www.contoso.com");
req.Proxy = proxyObject;
虽然作为旁注,您可以通过设置
proxyObject.UseDefaultCredentials = true;
如果您尝试使用它,则必须确保proxyObject.Credintials = null。
所有这一切的msdn网站都在这里MSDN WebProxy
答案 1 :(得分:0)
这会有点迟,但这可能会帮助处于相同情况的其他人,如下所示,首先为您的代理配置创建一个新类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web;
namespace Your_name_space
{
public class Proxy : IWebProxy
{
public ICredentials Credentials
{
get
{
return new NetworkCredential("username", "password", "domaine");
}
set { }
}
public Uri GetProxy(Uri destination)
{
return new Uri("your_proxy_address:port");
}
public bool IsBypassed(Uri host)
{
return false;
}
}
}
接下来,将其作为模块添加到您的应用程序配置中的configuration / system.net部分下。
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="false" >
<module type="Your_name_space.Proxy , your_assembly_name" />
</defaultProxy>
</system.net>
如果您确实要使用默认会话凭据,请在代理类中替换 这个:
new NetworkCredential("username", "password", "domaine");
作者
CredentialCache.DefaultCredentials;
我希望这会有所帮助。