VpnChannel 类

定义

提供用于创建和销毁 VPN 通道的方法,以及执行缓冲区管理的方法。 VPN 通道是系统中链接 VPN 插件的 VPN 服务器套接字与客户端计算机网络堆栈之间的网络流量数据流的对象。

public ref class VpnChannel sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.MTA)]
class VpnChannel final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.MTA)]
public sealed class VpnChannel
Public NotInheritable Class VpnChannel
继承
Object Platform::Object IInspectable VpnChannel
属性

Windows 要求

设备系列
Windows 10 (在 10.0.10240.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)
应用功能
networkingVpnProvider

注解

版本历史记录

Windows 版本 SDK 版本 已添加值
1803 17134 AddAndAssociateTransport
1803 17134 CurrentRequestTransportContext
1803 17134 GetSlotTypeForTransportContext
1803 17134 ReplaceAndAssociateTransport
1803 17134 StartReconnectingTransport
1803 17134 StartWithTrafficFilter (IEnumerable<HostName>,IEnumerable<HostName>,VpnInterfaceId,VpnRouteAssignment,VpnDomainNameAssignment,UInt32,UInt32,Boolean,IEnumerableIEnumerable<Object>,VpnTrafficFilterAssignment)

属性

Configuration

获取或设置与 VpnChannel 配置对应的 VpnChannelConfiguration 对象,该对象指示如何与 VPN 服务器建立通信。

CurrentRequestTransportContext

获取正在使用的传输上下文对象,例如主机或服务器的名称。

Id

获取 VPN 通道的唯一实例 ID。 这可用于简化两个 VPN 连接实例之间的解用操作。

PlugInContext

获取或设置一个上下文对象,VPN 插件可以使用该对象将其内部状态与 VpnChannel 对象相关联,以便在会话进行时稍后使用。

SystemHealth

获取客户端计算机的运行状况语句。

方法

ActivateForeground(String, ValueSet)

在前台激活 VPN 应用。 这通常用于让用户输入凭据。 只能从 IVpnPlugin.Connect 的实现中调用 ActivateForeground。 当应用处于前台时,常规 连接 超时会暂停。

如果在) 有大约 10 分钟的长时间暂停 (, 则 ActivateForeground 调用将被取消。 如果无法启动,插件在理想情况下应支持不需要用户界面 (UI) 的身份验证方法。

旨在支持基于 Web 的身份验证方案,例如安全断言标记语言 (SAML) 和 Azure Active Directory (AAD) 身份验证。

AddAndAssociateTransport(Object, Object)

准备、标记和创建传输,供 VPN 框架用作将 VPN 插件与 VPN 服务器通信的传输链接。 必须在与 VPN 框架 API 相关的任何其他操作之前执行此调用。

AppendVpnReceivePacketBuffer(VpnPacketBuffer)

将接收 VpnPacketBuffer 对象追加到通道。

AppendVpnSendPacketBuffer(VpnPacketBuffer)

将 send VpnPacketBuffer 对象追加到通道。

AssociateTransport(Object, Object)

准备传输并将其标记为 VPN 框架用作将 VPN 插件与 VPN 服务器通信的传输链接。 必须在与 VPN 框架 API 相关的任何其他操作之前执行此调用。

FlushVpnReceivePacketBuffers()

刷新任何追加的接收数据包缓冲区。 请参阅 AppendVpnReceivePacketBuffer

FlushVpnSendPacketBuffers()

刷新任何追加的发送数据包缓冲区。 请参阅 AppendVpnSendPacketBuffer

GetSlotTypeForTransportContext(Object)

检索指定传输上下文对象的槽类型 (硬件或软件) 。

GetVpnReceivePacketBuffer()

从接收数据包缓冲池请求 VpnPacketBuffer 对象,以用于从 VPN 服务器将接收的数据包解封或注入本地网络堆栈

GetVpnSendPacketBuffer()

从发送数据包缓冲池检索 VpnPacketBuffer 对象,以用于封装数据包以及将数据包从客户端网络堆栈传输到 VPN 服务器。

LogDiagnosticMessage(String)

将诊断消息写入系统日志。

ProcessEventAsync(Object, Object)

处理任何挂起的 VpnChannel 事件。

ReplaceAndAssociateTransport(Object, Object)

将现有传输替换为新的传输,供 VPN 框架用作将 VPN 插件与 VPN 服务器通信的传输链接。

RequestCredentials(VpnCredentialType, Boolean, Boolean, Certificate)

请求 VPN 平台从用户那里收集凭据。 插件可以指定要收集的凭据的类型和形式。 结果是一个对象,其中包含main凭据,具体取决于更改和过期情况的类型和辅助凭据。

RequestCredentialsAsync(VpnCredentialType)

请求 VPN 平台从用户收集给定凭据类型的凭据。

RequestCredentialsAsync(VpnCredentialType, UInt32)

请求 VPN 平台从用户收集凭据。 插件可以指定要收集的凭据的类型和形式。 结果是一个 对象,其中包含main凭据,具体取决于类型,以及用于更改和过期情况的辅助凭据。

RequestCredentialsAsync(VpnCredentialType, UInt32, Certificate)

用于从用户收集凭据的 VPN 平台。 如果需要用户交互才能获取凭据或同意,平台会提供必要的用户交互。 VPN 插件在使用任何类型的凭据之前必须请求凭据,即使其意图不是为其调用用户交互。

RequestCustomPrompt(IVectorView<IVpnCustomPrompt>)

不支持。

RequestCustomPromptAsync(IVectorView<IVpnCustomPromptElement>)

通过显示提示请求用户的信息。 允许使用可以混合的提示元素来向用户构造完整的提示。 用户提供的输入将返回到指定对象中的调用方。

RequestVpnPacketBuffer(VpnDataPathType, VpnPacketBuffer)

从指定池请求 IVpnPacketBuffer 。 发送路径有一个 IVpnPacketBuffer 池,接收路径有另一个 IVpnPacketBuffer 池。

SetAllowedSslTlsVersions(Object, Boolean)

不支持。

SetErrorMessage(String)

不支持。

Start(IVectorView<HostName>, IVectorView<HostName>, VpnInterfaceId, VpnRouteAssignment, VpnNamespaceAssignment, UInt32, UInt32, Boolean, Object, Object)

创建 VPN 插件要使用的 VPN 通道。 它还为客户端计算机中的应用程序创建 L3 网络接口,以便能够查看公司网络。

StartExistingTransports(IVectorView<HostName>, IVectorView<HostName>, VpnInterfaceId, VpnRouteAssignment, VpnDomainNameAssignment, UInt32, UInt32, Boolean)

创建 VPN 插件要使用的 VPN 通道。 它还为客户端计算机中的应用程序创建 L3 网络接口,以便能够查看公司网络。

StartReconnectingTransport(Object, Object)

重新连接套接字传输。 传输和传输上下文是在套接字传输重新连接时唯一可以更改的参数。

重要

此 API 未实现,建议不要调用它。

StartWithMainTransport(IVectorView<HostName>, IVectorView<HostName>, VpnInterfaceId, VpnRouteAssignment, VpnDomainNameAssignment, UInt32, UInt32, Boolean, Object)

创建 VPN 插件要使用的 VPN 通道。 它还为客户端计算机中的应用程序创建 L3 网络接口,以便能够查看公司网络。

StartWithTrafficFilter(IIterable<HostName>, IIterable<HostName>, VpnInterfaceId, VpnRouteAssignment, VpnDomainNameAssignment, UInt32, UInt32, Boolean, IIterable<Object>, VpnTrafficFilterAssignment)

为 VPN 插件要使用的任意数量的传输创建 VPN 通道。 它还为客户端计算机中的应用程序创建 L3 网络接口,以便能够查看公司网络。 它允许在每应用 VPN 方案中使用流量筛选器的规范。

StartWithTrafficFilter(IVectorView<HostName>, IVectorView<HostName>, VpnInterfaceId, VpnRouteAssignment, VpnDomainNameAssignment, UInt32, UInt32, Boolean, Object, Object, VpnTrafficFilterAssignment)

创建 VPN 插件要使用的 VPN 通道。 它还为客户端计算机中的应用程序创建 L3 网络接口,以便能够查看公司网络。 它允许在每应用 VPN 方案中使用流量筛选器的规范。

Stop()

销毁以前建立的 VPN 通道对象。 取消关联并关闭与 VPN 服务器的 outerTunnelTransport 连接。

TerminateConnection(String)

允许 VPN 插件指示错误消息并终止 在 IVpnPlugin.Connect 方法中执行的连接尝试。 不应在重新连接的情况下调用 。

事件

ActivityChange

不支持。

ActivityStateChange

当通道的活动状态发生更改时引发的事件。 由 VPN 插件用于确定通道是活动流量还是空闲。

适用于