【发布时间】:2021-10-21 23:16:36
【问题描述】:
这是我第一次写帖子,请多多包涵。
我已经为我的工作制作了一个程序,并且现在被要求在其中实施一项功能,我们的用户可以使用该程序连接到我们的 VPN(始终在线 VPN)。 但是,我似乎无法找到有关如何以编程方式实际建立连接的任何信息。我基本上需要能够点击“连接到 VPN”的按钮,然后它会建立连接,就像在 Windows 中点击连接时所做的那样:
我已经弄清楚如何通过我的程序查看连接是否建立:
public bool CheckForVPNInterface()
{
if (NetworkInterface.GetIsNetworkAvailable())
{
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface @interface in interfaces)
{
if (@interface.Description.Contains("Always-On VPN") && @interface.OperationalStatus == OperationalStatus.Up)
{
Label_Connection.BackColor = Color.Green;
return true;
}
else
Label_Connection.BackColor = Color.Red;
}
}
return false;
}
但现在只需要“连接到 VPN”按钮。
你知道怎么做吗?
注意:我尝试过使用 rasdial,但这不起作用
【问题讨论】:
-
如果这是一个真正的 Always-On-VPN-Connection,只需尝试访问 VPN 后面的资源即可触发建立它,例如ping 已知的文件服务器。如果这是常规 VPN 连接,rasdial 应该可以工作。可能没有用户名和密码,因为身份验证通常通过证书完成。