HTTPWebRequest以查看网站是否可用/凭证失败

时间:2015-11-05 10:15:35

标签: c# wpf proxy httpwebrequest

我在公司域名网络中。我们有网络限制。 我们无法ping 我们网络外的IP。

我必须通过在google.com上发布HTTPWebRequest来检查互联网连接是否已启动。

我们使用代理进行互联网连接并使用 proxy.pac 。 如果我不在公司并且我直接连接到互联网,该程序仍然可以工作。

检查我是否在公司 - >使用代理服务器。如果连接直接 - >没有代理人使用。

我尝试了这个,但是如果我在公司网络,我仍然得到(需要错误407认证),但是如果我是直接连接的话,它可以工作。

try
        {
            var uriBuilder = new UriBuilder(_URL);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uriBuilder.Uri);
            request.Timeout = 1000;
            //request.Accept = "*/*";
            WebProxy proxy = new WebProxy("1**.208.***.***:8080");
            //request.UseDefaultCredentials = true;
            request.Proxy = proxy;
            request.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
            //request.UserAgent = "Foo";
            //request.Accept = "*/*";
            //request.Method = "GET";
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            _PingByURL = response.StatusCode == HttpStatusCode.OK; //_PingByURL is bool.
        }
        catch 
        {

            _PingByURL =false;
        }

我的App.config:

<?xml version="1.0"?>
<configuration>
  <startup>      
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>       
  </startup>
  <system.net>
      <defaultProxy enabled ="true" useDefaultCredentials = "true">
          <proxy usesystemdefault ="True" bypassonlocal="True"/>
      </defaultProxy>
  </system.net>
</configuration>

所以我需要正确的证书。如何使用我登录的域中的域凭据?

谢谢!

1 个答案:

答案 0 :(得分:0)

PAC网址不是您的代理人。 PAC文件包含有关代理IP和端口的信息。这就是你需要传递给HttpWebRequest对象的东西。

也代替System.Net.CredentialCache.DefaultCredentials传递您的域凭据。