gpt4 book ai didi

c# - 如何(优雅地)确定 C# winforms 应用程序中是否需要代理身份验证

转载 作者:可可西里 更新时间:2023-11-01 08:21:14 26 4
gpt4 key购买 nike

我的用例是这样的,我想调出一个网络服务,如果我在需要身份验证的代理服务器后面,我只想使用默认凭据...

  WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;

否则,我只会简单地进行调用,如果预先确定是否需要身份验证,而不是在我尝试进行调用后处理异常,那将是非常好的。

想法?

最佳答案

那是在我第一次部署我的 app 之后我意识到有些用户在防火墙后面......开始测试它。而不是对“需要 407 身份验证”进行测试,我只是执行相同的 Proxy 设置,无论是否需要...

System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(uri.AbsoluteUri);
//HACK: add proxy
IWebProxy proxy = WebRequest.GetSystemWebProxy();
proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
req.Proxy = proxy;
req.PreAuthenticate = true;
//HACK: end add proxy
req.AllowAutoRedirect = true;
req.MaximumAutomaticRedirections = 3;
req.UserAgent = "Mozilla/6.0 (MSIE 6.0; Windows NT 5.1; DeepZoomPublisher.com)";
req.KeepAlive = true;
req.Timeout = 3 * 1000; // 3 seconds

我不确定相对优势/劣势是什么(首先尝试不使用代理的{}catch{},而不是仅使用上述代码),但这段代码现在似乎对我来说在工作(验证代理)和在家(无)。

关于c# - 如何(优雅地)确定 C# winforms 应用程序中是否需要代理身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/490177/

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