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

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

如何解决《如何(优雅地)确定C#winforms应用程序中是否需要代理身份验证》经验,为你挑选了1个好方法。

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

  WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;

否则我只是简单地拨打电话,确定是否需要事先验证是非常好的,而不是在我尝试拨打电话后处理异常.

想法?



1> Conceptdev..:

只是在我第一次部署我的应用程序之后,才意识到有些用户在防火墙之后......正在努力测试它.而不是测试"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

我不确定相对的优点/缺点是什么(try {} catch {}没有代理,而不仅仅是使用上面的代码,但这个代码现在似乎对我工作(验证代理)和在家工作(没有).

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有