【问题标题】:How to delete VPN connection (.pbk) in DotRas C#?如何在 DotRas C# 中删除 VPN 连接 (.pbk)?
【发布时间】:2019-05-12 19:37:10
【问题描述】:

当我的 VPN 客户端连接到我的 VPN 服务器时,它会创建一个 .PBK 连接,但是当我尝试使用另一个 IP 创建另一个连接时,它会抛出我

System.ArgumentException: 'ConnectionName' already exists in the phone book.

我知道每次尝试连接时我都可以创建不同的连接名称,但是随着时间的推移会有太多不必要的连接,我该如何通过 DotRas 或手动删除我的连接?

这个文件夹是完全清楚的。不知道该怎么办。

%AppData%\Roaming\Microsoft\Network\Connections\Pbk

【问题讨论】:

    标签: c# vpn dotras


    【解决方案1】:

    找到了我的问题的答案。如果您这样声明您的条目:

    RasEntry entry = RasEntry.CreateVpnEntry(EntryName, ip, RasVpnStrategy.Default,
    RasDevice.GetDeviceByName("(PPTP)", RasDeviceType.Vpn));
    

    你需要使用Remove()方法:

    this.AllUsersPhoneBook.Entries.Remove(Entry);
    

    【讨论】:

      【解决方案2】:

      RasCollection,也就是RasPhoneBook.Entries,提供了几种可以使用的方法。最后是ICollection/IEnumerable

      ...
      public abstract class RasCollection<TObject> : MarshalByRefObject, ICollection<TObject>, IEnumerable<TObject>, IEnumerable where TObject : class
      {
          ...
      
          public int Count { get; }
          ...
      
          public void Add(TObject item);
          public void Clear();
          public bool Contains(TObject item);
          ...
          ...
          public int IndexOf(TObject item);
          public bool Remove(TObject item);
          public void RemoveAt(int index);
          ...
      }
      

      要删除项目,可以使用Remove()(给定RasEntryRemoveAt() 给定索引)或Clear() 来删除所有内容。

      此外,RasEntryCollection 提供了public bool Remove(string name),可用于删除指定名称的条目。

      来源:我最近需要创建一个VPN软件。缺乏文档并没有帮助。

      【讨论】:

        猜你喜欢
        • 2016-07-12
        • 2019-12-07
        • 2019-05-31
        • 1970-01-01
        • 2016-06-27
        • 2013-12-12
        • 2015-03-03
        • 2019-04-09
        • 2015-06-04
        相关资源
        最近更新 更多