gpt4 book ai didi

c# - 如何在 .Net 应用程序中使用 IE 代理服务器设置及其凭据

转载 作者:太空狗 更新时间:2023-10-29 20:13:34 46 4
gpt4 key购买 nike

如何将保存的代理设置和凭据用作 HttpWebRequests 的默认设置?可以访问和使用代理设置,但不能访问和使用凭据:

IWebProxy proxy = WebRequest.GetSystemWebProxy();
proxy.Credentials = CredentialCache.DefaultNetworkCredentials;
WebRequest.DefaultWebProxy = proxy;

使用凭据是否有任何权限?

它通过 NetworkCredential 实例传递凭据:

proxy.Credentials = new NetworkCredential("username", "password");

但我想使用从操作系统/IE 中保存的。

编辑:

我正在使用第三方库创建和调用应该通过代理传递的 HttpWebRequests。这可能是问题的一部分吗?

使用包含此内容的 App.Config 文件也不起作用

<configuration>
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
</defaultProxy>
</system.net>
</configuration>

最佳答案

大概两周前我遇到了这个完全相同的问题!! HTTP 407 错误。我尝试了这两个建议,设置网络凭据并在 app.config 中添加默认代理行,但都没有用。也很奇怪,因为我去年写的一个 vb 应用程序没有这个问题,它做了完全相同的事情,去一个网站下载源代码作为一个字符串。当我这样做时,我遇到了这个问题,但在 App.config 中添加 defaultProxy 行有效!诡异的。

我就是这样解决这个问题的。

我不创建代理,我将默认代理(从 app.config 中提取)分配给 webRequest 的代理属性。然后我确保“UseDefaultCredentials”设置为“true”。

HttpWebRequest request = (HttpWebRequest.Create(m.Url) as HttpWebRequest);                
request.Proxy = WebRequest.DefaultWebProxy;
request.UseDefaultCredentials = true;

我将其添加到 app.config(与上述帖子相同)。

  <system.net>
<defaultProxy useDefaultCredentials="true"/>
</system.net>

这是关键(我希望我能解释为什么这解决了我的问题)。在我创建请求并为代理分配正确的凭据之后......我必须创建一个 cookie 容器并将其分配给我的网络请求。说真的,我不知道为什么这解决了这个问题,因为我以前不必这样做。

CookieContainer cc = new CookieContainer();
request.CookieContainer = cc;

希望对您有所帮助。

这是完整的代码(减去 app.config 行):

        HttpWebRequest request = (HttpWebRequest.Create(m.Url) as HttpWebRequest);                
request.Proxy = WebRequest.DefaultWebProxy;
request.UseDefaultCredentials = true;

CookieContainer cc = new CookieContainer();
request.CookieContainer = cc;

HttpWebResponse response = (request.GetResponse() as HttpWebResponse);

关于c# - 如何在 .Net 应用程序中使用 IE 代理服务器设置及其凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21984755/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com