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

取得或設定 VpnChannelConfiguration 物件,此對象對應至 VpnChannel 的組態,以及決定如何建立與 VPN 伺服器的通訊。

CurrentRequestTransportContext

取得使用中的傳輸內容物件,例如主機或伺服器的名稱。

Id

取得 VPN 通道的唯一實例識別碼。 這可用來簡化兩個 VPN 連線實例之間的解構作業。

PlugInContext

取得或設定內容物件,VPN 外掛程式可用來將其內部狀態與 VpnChannel 物件產生關聯,以供稍後在工作階段進行時使用。

SystemHealth

取得用戶端電腦健全狀況的語句。

方法

ActivateForeground(String, ValueSet)

在前景啟動 VPN 應用程式。 這通常用來讓使用者輸入認證。 您只能從 IVpnPlugin.Connect實作呼叫 ActivateForeground。 當應用程式處於前景時,會暫停一般 Connect 逾時。

ActivateForeground 呼叫將會取消,如果暫停時間很長(約 10 分鐘)。 如果無法啟動,則外掛程式應該最好支援不需要使用者介面的驗證方法(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 外掛程式用來判斷通道是否在流量或閑置中。

適用於