C# System.Data.DataSet.ReadXml-需要代理身份验证

C# System.Data.DataSet.ReadXml-需要代理身份验证,c#,asp.net,.net,C#,Asp.net,.net,我有一段旧代码(一个.aspx文件),需要通过代理获取。这个密码过去是有效的,但现在公司已经加强了安全措施 有问题的代码行是: dataSet.ReadXml(url); url是https 它正在.NET 2.0版上运行-无法升级。 我无法更改web.config文件 我需要向.aspx文件添加什么才能使其正常工作? 我得到的错误是: The remote server returned an error: (407) Proxy Authentication Required. 脚本中没

我有一段旧代码(一个.aspx文件),需要通过代理获取。这个密码过去是有效的,但现在公司已经加强了安全措施

有问题的代码行是:

dataSet.ReadXml(url);
url是https

它正在.NET 2.0版上运行-无法升级。 我无法更改web.config文件

我需要向.aspx文件添加什么才能使其正常工作? 我得到的错误是:

The remote server returned an error: (407) Proxy Authentication Required.
脚本中没有“连接到web”代码

编辑

根据丹的评论,我尝试了以下方法:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
IWebProxy proxy = request.Proxy;                    
WebProxy myProxy = new WebProxy();
Uri newUri = new Uri("http://10.79.30.190:8080");
// Associate the newUri object to 'myProxy' object so that new myProxy settings can be set.
myProxy.Address = newUri;
// Create a NetworkCredential object and associate it with the 
// Proxy property of request object.
myProxy.Credentials = new NetworkCredential("username", "password");
request.Proxy = myProxy;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

System.Data.DataSet dataSet = new System.Data.DataSet();
dataSet.ReadXml(responseString);
但我还是犯了同样的错误

编辑

另一次尝试:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
IWebProxy proxy = request.Proxy;                    
WebProxy myProxy = new WebProxy();
Uri newUri = new Uri("http://10.79.30.190:8080");
// Associate the newUri object to 'myProxy' object so that new myProxy settings can be set.
myProxy.Address = newUri;
// Create a NetworkCredential object and associate it with the 
// Proxy property of request object.
myProxy.Credentials = new NetworkCredential("username", "password");
request.Proxy = myProxy;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

System.Data.DataSet dataSet = new System.Data.DataSet();
dataSet.ReadXml(new StreamReader(response.GetResponseStream()));

但是我仍然收到相同的错误

这意味着,代理服务器的凭据不正确,尝试解决此问题的最佳解决方案是:

首先,将此行添加到您的
Web.Config

<system.net>
    <defaultProxy useDefaultCredentials="true" >
    </defaultProxy>
</system.net>
第三,是通过代码在两个位置设置凭据:

service.Proxy = WebRequest.DefaultWebProxy;
service.Credentials = System.Net.CredentialCache.DefaultCredentials; ;
service.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
HttpWebRequest webRequest = WebRequest.Create(uirTradeStream) as HttpWebRequest;
webRequest.Proxy = WebRequest.DefaultWebProxy;
webRequest.Credentials = new NetworkCredential("user", "password", "domain");
webRequest.Proxy.Credentials = new NetworkCredential("user", "password", "domain");

这里什么最适合你就什么

您需要使用或类似方法获取文件,指定代理凭据,然后将其解析为XML。请参阅。您是否尝试过默认凭据<代码>request.Proxy.Credentials=CredentialCache.DefaultCredentials原来是防火墙问题。我切换了代理(我猜是在另一个防火墙上),结果成功了。本例中的错误消息具有误导性,但我将为您提供帮助的要点:-)