我在公司域名网络中。我们有网络限制。 我们无法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>
所以我需要正确的证书。如何使用我登录的域中的域凭据?
谢谢!
答案 0 :(得分:0)
PAC网址不是您的代理人。 PAC文件包含有关代理IP和端口的信息。这就是你需要传递给HttpWebRequest对象的东西。
也代替System.Net.CredentialCache.DefaultCredentials传递您的域凭据。