Condividi tramite


VpnChannel Classe

Definizione

Fornisce metodi per creare ed eliminare definitivamente un canale VPN e metodi per eseguire la gestione del buffer. Un canale VPN è l'oggetto nel sistema che collega il flusso di dati del traffico di rete tra il socket del server VPN del plug-in VPN e lo stack di rete del computer client.

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
Ereditarietà
Object Platform::Object IInspectable VpnChannel
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)
Funzionalità dell'app
networkingVpnProvider

Commenti

Cronologia delle versioni

Versione di Windows Versione dell'SDK Valore aggiunto
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)

Proprietà

Configuration

Ottiene o imposta un oggetto VpnChannelConfiguration corrispondente alla configurazione del VpnChannel e che determina come stabilire la comunicazione con il server VPN.

CurrentRequestTransportContext

Ottiene l'oggetto contesto di trasporto in uso, ad esempio il nome di un host o di un server.

Id

Ottiene l'ID istanza univoco di un canale VPN. Può essere usato per semplificare le operazioni di demuxing tra due istanze di connessione VPN.

PlugInContext

Ottiene o imposta un oggetto di contesto che i plug-in VPN possono usare per associare il proprio stato interno a un oggetto VpnChannel per un uso successivo mentre la sessione è in corso.

SystemHealth

Ottiene l'istruzione di integrità del computer client.

Metodi

ActivateForeground(String, ValueSet)

Attiva l'app VPN in primo piano. Viene spesso usato per consentire all'utente di immettere le credenziali. È possibile chiamare ActivateForeground solo dall'implementazione di IVpnPlugin.Connect. Mentre l'app è in primo piano, viene sospeso il normale timeout Connect.

La chiamata ActivateForeground verrà annullata se è presente una pausa lunga (circa 10 minuti). Se non è possibile avviare, il plug-in dovrebbe idealmente supportare un metodo di autenticazione che non richiede l'interfaccia utente.

Progettato per supportare schemi di autenticazione basati sul Web, ad esempio SAML (Security Assertion Markup Language) e l'autenticazione di Azure Active Directory (AAD).

AddAndAssociateTransport(Object, Object)

Prepara, contrassegna e crea il trasporto da usare dal framework VPN come collegamento di trasporto che comunica il plug-in VPN al server VPN. Questa chiamata deve essere eseguita prima di qualsiasi altra operazione correlata alle API del framework VPN.

AppendVpnReceivePacketBuffer(VpnPacketBuffer)

Aggiunge un oggetto VpnPacketBuffer al canale.

AppendVpnSendPacketBuffer(VpnPacketBuffer)

Aggiunge un oggetto VpnPacketBuffer di invio al canale.

AssociateTransport(Object, Object)

Prepara e contrassegna il trasporto per l'uso da parte del framework VPN come collegamento di trasporto che comunica il plug-in VPN al server VPN. Questa chiamata deve essere eseguita prima di qualsiasi altra operazione correlata alle API del framework VPN.

FlushVpnReceivePacketBuffers()

Scarica eventuali buffer di pacchetti di ricezione accodati. Vedere AppendVpnReceivePacketBuffer.

FlushVpnSendPacketBuffers()

Scarica eventuali buffer di pacchetti di invio accodati. Vedere AppendVpnSendPacketBuffer.

GetSlotTypeForTransportContext(Object)

Recupera il tipo di slot (hardware o software) per l'oggetto contesto di trasporto specificato.

GetVpnReceivePacketBuffer()

Richiede un Oggetto VpnPacketBuffer dal pool di buffer di pacchetti di ricezione da usare nel decapsulation o nell'inserimento di un pacchetto ricevuto dal server VPN nello stack di rete locale

GetVpnSendPacketBuffer()

Recupera un oggetto VpnPacketBuffer dal pool di buffer di pacchetti di invio da usare in incapsulamento e trasmissione di un pacchetto di dati dallo stack di rete client al server VPN.

LogDiagnosticMessage(String)

Scrive un messaggio di diagnostica nel log di sistema.

ProcessEventAsync(Object, Object)

Elabora tutti gli eventi VpnChannel in sospeso.

ReplaceAndAssociateTransport(Object, Object)

Sostituisce un trasporto esistente con uno nuovo da usare dal framework VPN come collegamento di trasporto che comunica il plug-in VPN al server VPN.

RequestCredentials(VpnCredentialType, Boolean, Boolean, Certificate)

Richiedere alla piattaforma VPN di raccogliere le credenziali dall'utente. Il plug-in può specificare il tipo e la forma di credenziali da raccogliere. Il risultato è un oggetto contenente le credenziali principali a seconda del tipo e delle credenziali secondarie per i casi di modifica e scadenza.

RequestCredentialsAsync(VpnCredentialType)

Richiede alla piattaforma VPN di raccogliere le credenziali di un determinato tipo di credenziale dall'utente.

RequestCredentialsAsync(VpnCredentialType, UInt32)

Richiede alla piattaforma VPN di raccogliere le credenziali dall'utente. Il plug-in può specificare il tipo e la forma di credenziali da raccogliere. Il risultato è un oggetto contenente le credenziali principali a seconda del tipo e le credenziali secondarie per i casi di modifica e scadenza.

RequestCredentialsAsync(VpnCredentialType, UInt32, Certificate)

Piattaforma VPN per raccogliere le credenziali dall'utente. Se l'interazione dell'utente è necessaria per ottenere credenziali o consenso, la piattaforma fornisce l'interazione dell'utente necessaria. Un plug-in VPN deve richiedere le credenziali prima di usare qualsiasi tipo di credenziale, anche se lo scopo non è richiamare l'interazione dell'utente.

RequestCustomPrompt(IVectorView<IVpnCustomPrompt>)

Non supportato.

RequestCustomPromptAsync(IVectorView<IVpnCustomPromptElement>)

Richiede informazioni dall'utente presentando una richiesta. Consente l'uso di elementi prompt che possono essere misti per costruire un prompt completo all'utente. L'input fornito dall'utente viene restituito al chiamante negli oggetti specificati.

RequestVpnPacketBuffer(VpnDataPathType, VpnPacketBuffer)

Richiede un IVpnPacketBuffer dal pool specificato. Esiste un pool di IVpnPacketBuffer per il percorso di invio e un altro pool di IVpnPacketBuffer per il percorso di ricezione.

SetAllowedSslTlsVersions(Object, Boolean)

Non supportato.

SetErrorMessage(String)

Non supportato.

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

Crea il canale VPN da usare dal plug-in VPN. Crea anche un'interfaccia di rete L3 per le applicazioni nel computer client per poter visualizzare la rete aziendale.

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

Crea il canale VPN da usare dal plug-in VPN. Crea anche un'interfaccia di rete L3 per le applicazioni nel computer client per poter visualizzare la rete aziendale.

StartReconnectingTransport(Object, Object)

Riconnettere il trasporto socket. Il trasporto e il contesto di trasporto sono gli unici parametri che possono essere modificati in una riconnessione del trasporto socket.

Importante

Questa API non è implementata e si consiglia di non chiamarla.

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

Crea il canale VPN da usare dal plug-in VPN. Crea anche un'interfaccia di rete L3 per le applicazioni nel computer client per poter visualizzare la rete aziendale.

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

Crea il canale VPN per un numero arbitrario di trasporti da usare dal plug-in VPN. Crea anche un'interfaccia di rete L3 per le applicazioni nel computer client per poter visualizzare la rete aziendale. Consente di specificare i filtri di traffico da usare in scenari VPN per app.

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

Crea il canale VPN da usare dal plug-in VPN. Crea anche un'interfaccia di rete L3 per le applicazioni nel computer client per poter visualizzare la rete aziendale. Consente di specificare i filtri di traffico da usare in scenari VPN per app.

Stop()

Elimina definitivamente un oggetto canale VPN stabilito in precedenza. Annulla l'associazione e chiude la connessione outerTunnelTransport al server VPN.

TerminateConnection(String)

Consente a un plug-in VPN di indicare un messaggio di errore e terminare il tentativo di connessione eseguito all'interno del metodo IVpnPlugin.Connect. Non deve essere chiamato nei casi di riconnessione.

Eventi

ActivityChange

Non supportato.

ActivityStateChange

Evento generato quando lo stato dell'attività del canale è cambiato. Usato dai plug-in VPN per determinare se il canale è attivo con traffico o inattivo.

Si applica a