当前位置:  开发笔记 > 编程语言 > 正文

我应该如何设置默认代理以使用默认凭据?

如何解决《我应该如何设置默认代理以使用默认凭据?》经验,为你挑选了3个好方法。

以下代码适用于我:

var webProxy = WebProxy.GetDefaultProxy();
webProxy.UseDefaultCredentials = true;
WebRequest.DefaultWebProxy = webProxy;

不幸的是,WebProxy.GetDefaultProxy()已被弃用.我还应该做什么?

(在部署中不允许使用app.config设置defaultProxy设置)



1> Andrew Webb..:

对于那些谁,不像布莱恩Genisio,可以设置自己的应用程序的配置文件中的内容: -不要做任何代码.而是将其添加到app.config/web.config中.


  

确实,使用默认凭据的默认值应为"true"; 我看到这个问题让很多人感到困惑 - 开发人员,用户,IT人员.

有关详细信息,请参阅此处: - http://sticklebackplastic.com/post/2007/01/26/Poxy-proxies.aspx

更新:我已经为Microsoft创建了这个问题/想法,将useDefaultCredentials的默认值从false更改为true,以便整个问题消失,.NET应用程序"正常工作"; 如果您同意,请将其投票:http:
//visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2397357-fix-it-so-that-net-apps-can-access-http-thru- AUTH


我知道Brian,但是你的问题是"如何设置默认代理以使用默认凭据?",我认为我的答案将帮助很多人,因为大多数人都可以设置他们的配置文件的内容.
sjlewis,此设置不会影响那些不在任何代理之后的人.仅当.NET代码需要通过网络(通常是Web)进行访问时才会查询该设置,但遇到需要凭据的代理服务器.如果您要发送可能会或可能不会在身份验证代理后面运行的桌面应用程序,最好使用此设置发送app.config文件,以避免潜在问题.如果微软改变了默认值,那就没必要了.:)

2> Martin Holli..:

从.NET 2.0开始,您不需要这样做.如果未在Web请求上显式设置Proxy属性,则它使用静态WebRequest.DefaultWebProxy的值.如果要更改所有后续WebRequests使用的代理,可以设置此静态DefaultWebProxy属性.

WebRequest.DefaultWebProxy的默认行为是使用Internet Explorer使用的相同基础设置.

如果您想为当前用户使用不同的代理设置,则需要进行编码

WebRequest webRequest = WebRequest.Create("http://stackoverflow.com/");
webRequest.Proxy = new WebProxy("http://proxyserver:80/",true);

要么

WebRequest.DefaultWebProxy = new WebProxy("http://proxyserver:80/",true);

您还应该记住,代理的对象模型包括代理可以根据目标主机名而不同的概念.在调试和检查webRequest.Proxy的属性时,这可能会使事情有点混乱.呼叫

webRequest.Proxy.GetProxy(new Uri("http://google.com.au")) 查看将使用的代理服务器的实际详细信息.

关于您是否可以设置webRequest.ProxyWebRequest.DefaultWebProxy = null阻止使用任何代理,似乎存在争议.这对我来说似乎没问题,但你可以将它设置为new DefaultProxy()没有参数来获得所需的行为.另一件需要检查的事情是,如果应用程序配置文件中存在代理元素,.NET Framework将不会使用Internet Explorer中的代理设置.

MSDN杂志文章"在.NET中使用自动配置减轻用户负担"提供了有关内幕发生情况的更多详细信息.



3> Thariq Nugro..:
WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;

这将强制DefaultWebProxy使用默认凭据,类似于通过完成的效果UseDefaultCredentials = true.

因此,所有新创建的WebRequest实例都将使用已配置为使用代理的默认凭据的默认代理.


这是帮助我解决问题的唯一答案.它基本上做了接受的答案,但没有app.config.在我们的winrt windows8.1应用程序中,我们无法在部署中添加app.config,因为某些原因它会破坏应用程序.
推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有