如何在DotRas C#中删除VPN连接(.pbk)?

时间:2018-12-11 18:43:51

标签: c# vpn dotras

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

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

您需要使用Remove()方法:

this.AllUsersPhoneBook.Entries.Remove(Entry);

答案 1 :(得分:0)

RasCollectionRasPhoneBook.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()的{​​{1}},给定索引的RasEntryRemoveAt()删除所有内容。

此外,Clear()提供了RasEntryCollection,用户可以使用它删除具有指定名称的条目。

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