UWP创建VPN连接

3

目前我正在尝试解决一个问题,即如何在我的通用应用程序中添加VPN配置文件并连接到VPN。我可以使用Windows.Networking.Vpn命名空间连接到现有的VPN连接。我也可以添加一个配置文件,但无法找到设置所有必要信息(例如PSK)的方法。MS文档中没有关于这个命名空间的文档。我还看到有两个不同的配置文件命名空间可用:VpnNativeProfileVpnPlugInProfile。它们之间有什么区别?目前我不在家,所以无法提供我的当前代码,但如果有人能给我一些提示,那将非常有帮助。是否有其他地方提供的文档?

编辑 1// 这是我的示例代码

创建一个配置文件

VpnManagementAgent mgr = new VpnManagementAgent();

VpnNativeProfile profile = new VpnNativeProfile()
{
    AlwaysOn = false,
    NativeProtocolType = VpnNativeProtocolType.L2tp,
    ProfileName = "MyConnection",
    RememberCredentials = true,
    RequireVpnClientAppUI = true,
    RoutingPolicyType = VpnRoutingPolicyType.SplitRouting,
    TunnelAuthenticationMethod = VpnAuthenticationMethod.PresharedKey,
    UserAuthenticationMethod = VpnAuthenticationMethod.Mschapv2,
};

profile.Servers.Add("vpn.example.com");

VpnManagementErrorStatus profileStatus = await mgr.AddProfileFromObjectAsync(profile);

连接到VPN

PasswordCredential credentials = new PasswordCredential
{
    UserName = "username",
    Password = "password",
};

VpnManagementErrorStatus connectStatus = await mgr.ConnectProfileWithPasswordCredentialAsync(profile, credentials);

这可以实现,但我不知道在哪里或如何设置PSK。


1
win-universal-app 标签应与所使用的操作系统(Windows 8.1 或 Windows 10)结合使用。 - Manfred Radlwimmer
我运行了你的代码,但是在我的电脑上它没有创建新的连接。在Windows 10中的“连接”中也没有看到任何东西。基本上,这个本地配置文件只允许你将你的UWP应用程序连接到VPN?还是它允许你将整个机器的所有流量都通过VPN路由? - Cosmin Ioniță
@andy 我已经开始处理VPN相关的工作了,但是我无法使用VpnManagmentAgent类。请告诉我如何在我们的C#项目中引入这个类。 - Muhammad Tufail
你需要添加 Windows.Networking.Vpn 命名空间才能访问它。 - andy
如何添加这个命名空间,你能指导我吗? - Muhammad Tufail
显示剩余23条评论
1个回答

4

VPN Native Profile:这指的是 Windows Inbox / 内置 VPN 配置文件,可用于基于 L2TP、PPTP 或 IKEv2 的 VPN。

VPN Plugin Profile:指的是基于 Windows 10 UWP 的 VPN 插件。这是使用 Windows.networking.VPN 命名空间编写的 VPN 应用程序。

我查看了代码,发现明显的缺陷在于目前还没有一种方式可以通过代码设置 PSK。目前唯一的解决办法就是暂时在“设置 UI”中进行设置。

我将向 Windows VPN 团队报告此项缺失情况。

文档链接:https://learn.microsoft.com/en-us/uwp/api/windows.networking.vpn


2
不幸的是,我认为AddProfileXMLAsync函数也存在一个未解决的问题。我已经向团队报告了这个问题。 - Aman Arneja - MSFT
1
Aman Arneja:如果您能帮助我们解决这个问题,那将非常棒。有更多的人需要UWP VPN功能的示例代码,特别是VPN本机配置文件。 - Cosmin Ioniță
@AmanArneja-MSFT:你完成那些样例了吗?是的,我仍然需要你的帮助(如果你能帮我,我会非常感激)。 - Cosmin Ioniță
我还需要配置部分,以便我可以添加PSK。 - andy
这里有什么新闻吗?@AmanArneja-MSFT:你能否与我们分享你的工作样例? - andy
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接