我正在开发 ac# .Net3.5 应用程序。
应用程序使用WinVerifyTrust检查文件的签名。问题是在孤立的网络上(即没有 Internet 访问权限,但机器仍有 IP 地址)需要很长时间(约 20 秒)直到 WinVerifyTrust 返回。
有没有办法识别这种情况?
我正在开发 ac# .Net3.5 应用程序。
应用程序使用WinVerifyTrust检查文件的签名。问题是在孤立的网络上(即没有 Internet 访问权限,但机器仍有 IP 地址)需要很长时间(约 20 秒)直到 WinVerifyTrust 返回。
有没有办法识别这种情况?
您是否尝试过使用Windows API
-
using System;
using System.Runtime;
using System.Runtime.InteropServices;
public class InternetCS
{
//Creating the extern function...
[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState( out int Description, int ReservedValue );
//Creating a function that uses the API function...
public static bool IsConnectedToInternet( )
{
int Desc ;
return InternetGetConnectedState( out Desc, 0 ) ;
}
}
如果计算机连接的互联网连接速度较慢,您将如何区分?
无论如何,您可以 Ping google(例如)以查看它是否可用。如果计算机未隔离,它将可用。
要从 C# ping 只需使用 System.Net.NetworkInformation.Ping
编辑:如果你需要支持代理,那么你应该通过谷歌端口 80 打开一个 TcpConnection 并检查你是否可以。如果您无法打开 google 的 80 端口,您也无法连接到 WinVerifyTrust。