Share via


VpnChannel Klasse

Definition

Stellt Methoden zum Erstellen und Zerstören eines VPN-Kanals sowie Methoden zur Pufferverwaltung bereit. Ein VPN-Kanal ist das Objekt im System, das den Datenfluss des Netzwerkdatenverkehrs zwischen dem VPN-Server-Socket des VPN-Plug-Ins und dem Netzwerkstapel des Clientcomputers verbindet.

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

Ruft ein VpnChannelConfiguration-Objekt ab, das der Konfiguration von VpnChannel entspricht und das vorschreibt, wie die Kommunikation mit dem VPN-Server hergestellt werden soll, oder legt dieses fest.

CurrentRequestTransportContext

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

Id

Ruft die eindeutige instance-ID eines VPN-Kanals ab. Dies kann verwendet werden, um Deuxingvorgänge zwischen zwei VPN-Verbindungsinstanzen zu vereinfachen.

PlugInContext

Ruft ein Kontextobjekt ab, das VPN-Plug-Ins verwenden können, um ihren internen Zustand einem VpnChannel-Objekt zur späteren Verwendung zuzuordnen, während die Sitzung ausgeführt wird.

SystemHealth

Ruft die Integritätsanweisung 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 über Ihre Implementierung von IVpnPlugin.Connect aufrufen. 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) vorliegt. Wenn der Start nicht möglich ist, sollte das Plug-In idealerweise eine Authentifizierungsmethode unterstützen, die keine Benutzeroberfläche (UI) benötigt.

Dient zur Unterstützung webbasierter Authentifizierungsschemas wie SAML (Security Assertion Markup Language) und AAD-Authentifizierung (Azure Active Directory).

AddAndAssociateTransport(Object, Object)

Bereitet den Transport vor, markiert und erstellt ihn 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 ein empfangenes 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, 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()

Leert alle angefügten Empfangspaketpuffer. Siehe AppendVpnReceivePacketBuffer.

FlushVpnSendPacketBuffers()

Leert alle angefügten Sendepaketpuffer. Siehe AppendVpnSendPacketBuffer.

GetSlotTypeForTransportContext(Object)

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

GetVpnReceivePacketBuffer()

Fordert ein VpnPacketBuffer-Objekt aus dem Pufferpool für Empfangspakete an, das bei der Kapselung oder Einschleusung eines empfangenen Pakets vom VPN-Server in den lokalen Netzwerkstapel verwendet wird.

GetVpnSendPacketBuffer()

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

LogDiagnosticMessage(String)

Schreibt eine Diagnosemeldung in das Systemprotokoll.

ProcessEventAsync(Object, Object)

Verarbeitet alle ausstehenden VpnChannel-Ereignisse.

ReplaceAndAssociateTransport(Object, Object)

Ersetzt einen vorhandenen Transport durch einen neuen Transport, der vom VPN-Framework als Transportverbindung verwendet wird, die das VPN-Plug-In an den VPN-Server kommuniziert.

RequestCredentials(VpnCredentialType, Boolean, Boolean, Certificate)

Fordern Sie 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 die Standard Anmeldeinformationen je nach Typ und den sekundären Anmeldeinformationen für Änderungs- und Ablauffälle enthält.

RequestCredentialsAsync(VpnCredentialType)

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

RequestCredentialsAsync(VpnCredentialType, UInt32)

Fordert die VPN-Plattform auf, 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 Standard Anmeldeinformationen 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 Zustimmungen zu erhalten, stellt die Plattform die erforderliche Benutzerinteraktion bereit. Ein VPN-Plug-In muss Anmeldeinformationen anfordern, bevor ein Typ von Anmeldeinformationen verwendet wird, auch wenn die Absicht nicht darin besteht, eine Benutzerinteraktion dafür aufzurufen.

RequestCustomPrompt(IVectorView<IVpnCustomPrompt>)

Wird 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 eine vollständige Eingabeaufforderung für den Benutzer zu erstellen. Die vom Benutzer bereitgestellte Eingabe wird in den angegebenen Objekten an den Aufrufer zurückgegeben.

RequestVpnPacketBuffer(VpnDataPathType, VpnPacketBuffer)

Fordert einen IVpnPacketBuffer aus dem angegebenen Pool an. Es gibt einen IVpnPacketBuffer-Pool für den Sendepfad und einen weiteren IVpnPacketBuffer-Pool für den Empfangspfad.

SetAllowedSslTlsVersions(Object, Boolean)

Wird nicht unterstützt.

SetErrorMessage(String)

Wird 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 Sockettransportwiederhergestellten Verbindung 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. Es ermöglicht die Spezifikation von Datenverkehrsfiltern, die in Pro-App-VPN-Szenarien verwendet werden sollen.

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. Es ermöglicht die Spezifikation von Datenverkehrsfiltern, die in Pro-App-VPN-Szenarien verwendet werden sollen.

Stop()

Zerstört ein zuvor eingerichtetes VPN-Kanalobjekt. Entfernt die Zuordnung und schließt die OuterTunnelTransport-Verbindung mit dem VPN-Server.

TerminateConnection(String)

Ermöglicht einem VPN-Plug-In, eine Fehlermeldung anzuzeigen und den Verbindungsversuch innerhalb der IVpnPlugin.Connect-Methode zu beenden. Sollte bei Fällen der erneuten Verbindung nicht aufgerufen werden.

Ereignisse

ActivityChange

Wird nicht unterstützt.

ActivityStateChange

Das Ereignis wird 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 aktiv oder im Leerlauf ist.

Gilt für: