1

我正在尝试创建一个控制台应用程序来为我的公司创建一个 VPN 连接。我能够创建 VPN 连接,但无法设置一些属性。我希望未加密密码 (PAP) 为真,而 CHAP 和 CHAP2 为假。但是,这些设置正在发生相反的情况。我正在使用 DotRas 工具。我做错了什么或错过了什么?

string VpnName = "Test VPN";
            string Destination = "127.0.0.1";
            string PresharedKey = "testkey";
            RasPhoneBook PhoneBook = new RasPhoneBook();
            PhoneBook.Open();

            RasEntry VpnEntry = RasEntry.CreateVpnEntry(VpnName, Destination, DotRas.RasVpnStrategy.L2tpOnly, DotRas.RasDevice.Create(VpnName, DotRas.RasDeviceType.Vpn));
            VpnEntry.Options.UsePreSharedKey = true;
            VpnEntry.Options.UseLogOnCredentials = false;
            VpnEntry.Options.RequirePap = true;
            VpnEntry.Options.RequireMSChap = false;
            VpnEntry.Options.RequireMSChap2 = false;
            PhoneBook.Entries.Add(VpnEntry);
            VpnEntry.UpdateCredentials(RasPreSharedKey.Client, PresharedKey);
            Console.WriteLine("VPN connection created successfully");
4

2 回答 2

0

您可以使用选项组合更改三个安全复选框。

VpnEntry.Options.RequireEncryptedPassword = false;
VpnEntry.Options.RequirePap = true;
VpnEntry.Options.RequireChap = false;
VpnEntry.Options.RequireMSChap = false;
VpnEntry.Options.RequireMSChap2 = false;

这些选项将选中 PAP、未选中 CHAP 和未选中 MS-CHAP v2。

于 2018-08-20T01:35:47.017 回答
0

您可以使用 Windows 构建拨号命令“rasdial.exe”进行连接,使用如下代码:

       rasDialFileName = Path.Combine(WinDir, "rasdial.exe");

        try
        {
            string args = $"{connectionName} {userName} {passWord}";
            ProcessStartInfo myProcess = new ProcessStartInfo(rasDialFileName, args);
            myProcess.CreateNoWindow = true;
            myProcess.UseShellExecute = false;
            Process.Start(myProcess);
        }
        catch (Exception Ex)
        {
            Debug.Assert(false, Ex.ToString());
        }
于 2019-12-12T05:37:34.987 回答