2015-11-05 131 views
0

我在公司域网络中。我们受到网络限制。 我们无法ping通 IP在我们的网络之外。HTTPWebRequest查看网站是否可用/凭证失败

我必须检查互联网连接是否在google.com上发起HTTPWebRequest。

我们使用我们的网站连接的代理服务并使用proxy.pac。 如果我不在公司并且我直接连接到互联网,程序员仍然应该工作。

检查我是否在公司 - >使用代理服务器。如果connectet direktly - >使用没有代理。

我尝试了这个,但我仍然得到(错误407身份验证要求),如果我在公司网络,但它的工作,如果我直接connectet。

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> 

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

谢谢!

回答

0

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

而不是System.Net.CredentialCache.DefaultCredentials传递您的域凭据。

+0

但我怎么得到代理的pac?或者我可以使用我的默认代理?它应该是pac之外的代理。 – Shadow

+0

即使我使用从代理的IP它不起作用。 – Shadow