C# System.Data.DataSet.ReadXml-需要代理身份验证
我有一段旧代码(一个.aspx文件),需要通过代理获取。这个密码过去是有效的,但现在公司已经加强了安全措施 有问题的代码行是: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. 脚本中没
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代码>原来是防火墙问题。我切换了代理(我猜是在另一个防火墙上),结果成功了。本例中的错误消息具有误导性,但我将为您提供帮助的要点:-)