Вы можете использовать System.Net.NetworkInformation.Ping , чтобы проверить, установлено ли соединение, а затем выполнить повторный набор для повторного подключения vpn, если соединение потеряно.
например,
System.Diagnostics.Process.Start("rasdial.exe", "VPNName Username Password");
Вы также можете отключить VPN, используя
System.Diagnostics.Process.Start("rasdial.exe", "VPNName /d");
Обновление
Вызов rasdial без аргументов возвращает список открытых соединений - может быть болеенадежное решение для вас.