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<对象>,VpnTrafficFilterAssignment)

属性

Configuration

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

CurrentRequestTransportContext

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

Id

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

PlugInContext

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

SystemHealth

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

方法

ActivateForeground(String, ValueSet)

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

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

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

AddAndAssociateTransport(Object, Object)

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

AppendVpnReceivePacketBuffer(VpnPacketBuffer)

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

AppendVpnSendPacketBuffer(VpnPacketBuffer)

将发送 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 平台从用户那里收集凭据。 插件可以指定要收集的凭据的类型和形式。 结果是一个对象,其中包含主要凭据,具体取决于更改和过期情况的类型和辅助凭据。

RequestCredentialsAsync(VpnCredentialType)

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

RequestCredentialsAsync(VpnCredentialType, UInt32)

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

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 插件用于确定通道是使用流量还是空闲。

适用于