Freigeben über


VpnChannel Klasse

Definition

Stellt Methoden zum Erstellen und Zerstören eines VPN-Kanals und Methoden zum Ausführen der Pufferverwaltung bereit. Ein VPN-Kanal ist das Objekt im System, das den Datenverkehrsdatenfluss zwischen dem VPN-Serversocket des VPN-Plug-Ins und dem Netzwerkstapel des Clientcomputers verknüpft.

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
Vererbung
Object Platform::Object IInspectable VpnChannel
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)
App-Funktionen
networkingVpnProvider

Hinweise

Versionsverlauf

Windows-Version SDK-Version Mehrwert
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)

Eigenschaften

Configuration

Dient zum Abrufen oder Festlegen eines VpnChannelConfiguration -Objekts, das der Konfiguration der VpnChannel- entspricht und die bestimmt, wie die Kommunikation mit dem VPN-Server hergestellt wird.

CurrentRequestTransportContext

Ruft das verwendete Transportkontextobjekt ab, z. B. den Namen eines Hosts oder Servers.

Id

Ruft die eindeutige Instanz-ID eines VPN-Kanals ab. Dies kann verwendet werden, um die Deux von Vorgängen zwischen zwei VPN-Verbindungsinstanzen zu vereinfachen.

PlugInContext

Dient zum Abrufen oder Festlegen eines Kontextobjekts, das VPN-Plug-Ins verwenden können, um ihren internen Zustand einem VpnChannel- -Objekt für die spätere Verwendung zuzuordnen, während die Sitzung ausgeführt wird.

SystemHealth

Ruft die Anweisung der Integrität des Clientcomputers ab.

Methoden

ActivateForeground(String, ValueSet)

Aktiviert die VPN-App im Vordergrund. Dies wird häufig verwendet, um dem Benutzer die Eingabe von Anmeldeinformationen zu ermöglichen. Sie können ActivateForeground- nur von Ihrer Implementierung von IVpnPlugin.Connectaufrufen. Während sich die App im Vordergrund befindet, wird das reguläre Connect Timeout angehalten.

Der ActivateForeground Anruf wird abgebrochen, wenn eine lange Pause (ca. 10 Minuten) besteht. Wenn das Plug-In nicht gestartet werden kann, sollte das Plug-In idealerweise eine Authentifizierungsmethode unterstützen, die keine Benutzeroberfläche (UI) benötigt.

Soll webbasierte Authentifizierungsschemas wie Security Assertion Markup Language (SAML) und Azure Active Directory (AAD)-Authentifizierung unterstützen.

AddAndAssociateTransport(Object, Object)

Vorbereitet, markiert und erstellt den Transport für die Verwendung durch das VPN-Framework als Transportverbindung, die das VPN-Plug-In an den VPN-Server kommuniziert. Dieser Aufruf muss vor allen anderen Vorgängen im Zusammenhang mit den VPN-Framework-APIs ausgeführt werden.

AppendVpnReceivePacketBuffer(VpnPacketBuffer)

Fügt einen Empfangs-VpnPacketBuffer- -Objekt an den Kanal an.

AppendVpnSendPacketBuffer(VpnPacketBuffer)

Fügt ein Send-VpnPacketBuffer- -Objekt an den Kanal an.

AssociateTransport(Object, Object)

Bereitet den Transport für die Verwendung durch das VPN-Framework als Transportverbindung vor und kennzeichnet ihn als Transportverbindung, die das VPN-Plug-In an den VPN-Server kommuniziert. Dieser Aufruf muss vor allen anderen Vorgängen im Zusammenhang mit den VPN-Framework-APIs ausgeführt werden.

FlushVpnReceivePacketBuffers()

Löscht alle angefügten Empfangspaketpuffer. Siehe AppendVpnReceivePacketBuffer.

FlushVpnSendPacketBuffers()

Löscht alle angefügten Sendepaketpuffer. Siehe AppendVpnSendPacketBuffer.

GetSlotTypeForTransportContext(Object)

Ruft den Steckplatztyp (Hardware oder Software) für das angegebene Transportkontextobjekt ab.

GetVpnReceivePacketBuffer()

Fordert ein VpnPacketBuffer--Objekt vom Empfangspaketpufferpool an, das in der Entkapselung oder Einfügung eines empfangenen Pakets vom VPN-Server in den lokalen Netzwerkstapel verwendet werden soll.

GetVpnSendPacketBuffer()

Ruft ein VpnPacketBuffer Objekt aus dem Sendepaketpufferpool ab, um in der Kapselung und Übertragung eines Datenpakets vom Clientnetzwerkstapel an den VPN-Server zu verwenden.

LogDiagnosticMessage(String)

Schreibt eine Diagnosenachricht in das Systemprotokoll.

ProcessEventAsync(Object, Object)

Verarbeitet alle ausstehenden VpnChannel-Ereignisse.

ReplaceAndAssociateTransport(Object, Object)

Ersetzt einen vorhandenen Transport durch einen neuen Transport für die Verwendung durch das VPN-Framework als Transportverbindung, die das VPN-Plug-In an den VPN-Server kommuniziert.

RequestCredentials(VpnCredentialType, Boolean, Boolean, Certificate)

Fordern Sie die VPN-Plattform an, um Anmeldeinformationen vom Benutzer zu sammeln. Das Plug-In kann den Typ und die Form der zu sammelnden Anmeldeinformationen angeben. Das Ergebnis ist ein Objekt, das die Hauptanmeldeinformationen enthält, abhängig vom Typ und den sekundären Anmeldeinformationen für Änderungs- und Ablauffälle.

RequestCredentialsAsync(VpnCredentialType)

Fordert die VPN-Plattform an, Anmeldeinformationen eines bestimmten Anmeldeinformationstyps vom Benutzer zu sammeln.

RequestCredentialsAsync(VpnCredentialType, UInt32)

Fordert die VPN-Plattform an, Anmeldeinformationen vom Benutzer zu sammeln. Das Plug-In kann den Typ und die Form der zu sammelnden Anmeldeinformationen angeben. Das Ergebnis ist ein Objekt, das je nach Typ die Hauptanmeldeinformationen und die sekundären Anmeldeinformationen für Änderungs- und Ablauffälle enthält.

RequestCredentialsAsync(VpnCredentialType, UInt32, Certificate)

VPN-Plattform zum Sammeln von Anmeldeinformationen vom Benutzer. Wenn eine Benutzerinteraktion erforderlich ist, um anmeldeinformationen oder zustimmung zu erhalten, stellt die Plattform die erforderliche Benutzerinteraktion bereit. Ein VPN-Plug-In muss Anmeldeinformationen anfordern, bevor eine Art von Anmeldeinformationen verwendet wird, auch wenn die Absicht nicht besteht, die Benutzerinteraktion dafür aufzurufen.

RequestCustomPrompt(IVectorView<IVpnCustomPrompt>)

Nicht unterstützt.

RequestCustomPromptAsync(IVectorView<IVpnCustomPromptElement>)

Fordert Informationen vom Benutzer an, indem eine Eingabeaufforderung angezeigt wird. Ermöglicht die Verwendung von Eingabeaufforderungselementen, die gemischt werden können, um dem Benutzer eine vollständige Eingabeaufforderung zu erstellen. Die vom Benutzer bereitgestellte Eingabe wird an den Aufrufer in den angegebenen Objekten zurückgegeben.

RequestVpnPacketBuffer(VpnDataPathType, VpnPacketBuffer)

Fordert eine IVpnPacketBuffer aus dem angegebenen Pool an. Es gibt einen IVpnPacketBuffer Pool für den Sendepfad und ein weiteres IVpnPacketBuffer Pool für den Empfangspfad.

SetAllowedSslTlsVersions(Object, Boolean)

Nicht unterstützt.

SetErrorMessage(String)

Nicht unterstützt.

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

Erstellt den VPN-Kanal, der vom VPN-Plug-In verwendet werden soll. Außerdem wird eine L3-Netzwerkschnittstelle für Anwendungen auf dem Clientcomputer erstellt, um das Unternehmensnetzwerk anzeigen zu können.

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

Erstellt den VPN-Kanal, der vom VPN-Plug-In verwendet werden soll. Außerdem wird eine L3-Netzwerkschnittstelle für Anwendungen auf dem Clientcomputer erstellt, um das Unternehmensnetzwerk anzeigen zu können.

StartReconnectingTransport(Object, Object)

Verbinden Sie den Sockettransport erneut. Transport- und Transportkontext sind die einzigen Parameter, die bei einer Reconnection des Sockettransports geändert werden können.

Wichtig

Diese API ist nicht implementiert, und es wird empfohlen, sie nicht aufzurufen.

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

Erstellt den VPN-Kanal, der vom VPN-Plug-In verwendet werden soll. Außerdem wird eine L3-Netzwerkschnittstelle für Anwendungen auf dem Clientcomputer erstellt, um das Unternehmensnetzwerk anzeigen zu können.

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

Erstellt den VPN-Kanal für eine beliebige Anzahl von Transporten, die vom VPN-Plug-In verwendet werden sollen. Außerdem wird eine L3-Netzwerkschnittstelle für Anwendungen auf dem Clientcomputer erstellt, um das Unternehmensnetzwerk anzeigen zu können. Sie ermöglicht die Spezifikation von Datenverkehrsfiltern, die in VPN-Szenarien pro App verwendet werden.

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

Erstellt den VPN-Kanal, der vom VPN-Plug-In verwendet werden soll. Außerdem wird eine L3-Netzwerkschnittstelle für Anwendungen auf dem Clientcomputer erstellt, um das Unternehmensnetzwerk anzeigen zu können. Sie ermöglicht die Spezifikation von Datenverkehrsfiltern, die in VPN-Szenarien pro App verwendet werden.

Stop()

Zerstört ein zuvor erstelltes VPN-Kanalobjekt. Entfernt und schließt die outerTunnelTransport- Verbindung mit dem VPN-Server.

TerminateConnection(String)

Ermöglicht es einem VPN-Plug-In, eine Fehlermeldung anzugeben und den Verbindungsversuch innerhalb der IVpnPlugin.Connect-Methode auszuführen. Sollte nicht bei erneuten Verbindungsfällen aufgerufen werden.

Ereignisse

ActivityChange

Nicht unterstützt.

ActivityStateChange

Ereignis ausgelöst, wenn sich der Aktivitätsstatus des Kanals geändert hat. Wird von VPN-Plug-Ins verwendet, um zu bestimmen, ob der Kanal mit Datenverkehr oder Leerlauf aktiv ist.

Gilt für: