Compartilhar via


VpnChannel Classe

Definição

Fornece métodos para criar e destruir um canal VPN e métodos para executar o gerenciamento de buffer. Um canal VPN é o objeto no sistema que vincula o fluxo de dados de tráfego de rede entre o soquete do servidor VPN do plug-in VPN e a pilha de rede do computador cliente.

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
Herança
Object Platform::Object IInspectable VpnChannel
Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
Funcionalidades do aplicativo
networkingVpnProvider

Comentários

Histórico de versões

Versão do Windows Versão do SDK Valor acrescentado
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)

Propriedades

Configuration

Obtém ou define um objeto VpnChannelConfiguration correspondente à configuração do VpnChannel e que determina como estabelecer a comunicação com o servidor VPN.

CurrentRequestTransportContext

Obtém o objeto de contexto de transporte em uso, por exemplo, o nome de um host ou servidor.

Id

Obtém a ID de instância exclusiva de um canal VPN. Isso pode ser usado para simplificar as operações de desativação entre duas instâncias de conexão VPN.

PlugInContext

Obtém ou define um objeto de contexto que os plug-ins vpn podem usar para associar seu estado interno a um vpnChannel objeto para uso posterior enquanto a sessão está em andamento.

SystemHealth

Obtém a instrução de integridade do computador cliente.

Métodos

ActivateForeground(String, ValueSet)

Ativa o aplicativo VPN em primeiro plano. Isso geralmente é usado para permitir que o usuário insira credenciais. Você pode chamar ActivateForeground somente na implementação de IVpnPlugin.Connect. Enquanto o aplicativo está em primeiro plano, o tempo limite regular do Connect é pausado.

A chamada ActivateForeground será cancelada se houver uma pausa longa (cerca de 10 minutos). Se não for possível iniciar, o plug-in deverá dar suporte a um método de autenticação que não precise de interface do usuário (interface do usuário).

Destinado a dar suporte a esquemas de autenticação baseados na Web, como a SAML (Security Assertion Markup Language) e a autenticação do AAD (Azure Active Directory).

AddAndAssociateTransport(Object, Object)

Prepara, marca e cria o transporte para uso pela estrutura VPN como um link de transporte comunicando o plug-in VPN ao servidor VPN. Essa chamada deve ser executada antes de qualquer outra operação relacionada às APIs da estrutura VPN.

AppendVpnReceivePacketBuffer(VpnPacketBuffer)

Acrescenta um recebimento objeto VpnPacketBuffer ao canal.

AppendVpnSendPacketBuffer(VpnPacketBuffer)

Acrescenta um objeto VpnPacketBuffer ao canal.

AssociateTransport(Object, Object)

Prepara e marca o transporte para uso pela estrutura VPN como um link de transporte comunicando o plug-in VPN ao servidor VPN. Essa chamada deve ser executada antes de qualquer outra operação relacionada às APIs da estrutura VPN.

FlushVpnReceivePacketBuffers()

Libera os buffers de pacote de recebimento acrescentados. Consulte AppendVpnReceivePacketBuffer.

FlushVpnSendPacketBuffers()

Libera os buffers de pacote de envio acrescentados. Consulte AppendVpnSendPacketBuffer.

GetSlotTypeForTransportContext(Object)

Recupera o tipo de slot (hardware ou software) para o objeto de contexto de transporte especificado.

GetVpnReceivePacketBuffer()

Solicita um objeto VpnPacketBuffer do pool de buffer de pacotes de recebimento a ser usado na descapsulação ou injeção de um pacote recebido do servidor VPN na pilha de rede local

GetVpnSendPacketBuffer()

Recupera um objeto VpnPacketBuffer do pool de buffer de pacotes de envio a ser usado no encapsulamento e na transmissão de um pacote de dados da pilha de rede do cliente para o servidor VPN.

LogDiagnosticMessage(String)

Grava uma mensagem de diagnóstico no log do sistema.

ProcessEventAsync(Object, Object)

Processa todos os eventos vpnchannel pendentes.

ReplaceAndAssociateTransport(Object, Object)

Substitui um transporte existente por um novo para uso pela estrutura VPN como um link de transporte comunicando o plug-in VPN ao servidor VPN.

RequestCredentials(VpnCredentialType, Boolean, Boolean, Certificate)

Solicite à plataforma VPN para coletar credenciais do usuário. O plug-in pode especificar o tipo e a forma de credenciais a serem coletadas. O resultado é um objeto que contém as credenciais principais, dependendo do tipo e das credenciais secundárias para casos de alteração e expiração.

RequestCredentialsAsync(VpnCredentialType)

Solicita a plataforma VPN para coletar credenciais de um determinado tipo de credencial do usuário.

RequestCredentialsAsync(VpnCredentialType, UInt32)

Solicita a plataforma VPN para coletar credenciais do usuário. O plug-in pode especificar o tipo e a forma de credenciais a serem coletadas. O resultado é um objeto que contém as credenciais principais, dependendo do tipo, e as credenciais secundárias para casos de alteração e expiração.

RequestCredentialsAsync(VpnCredentialType, UInt32, Certificate)

Plataforma VPN para coletar credenciais do usuário. Se a interação do usuário for necessária para obter uma credencial ou consentimento, a plataforma fornecerá a interação do usuário necessária. Um plug-in VPN deve solicitar credenciais antes de usar qualquer tipo de credencial, mesmo que a intenção não seja invocar a interação do usuário para ele.

RequestCustomPrompt(IVectorView<IVpnCustomPrompt>)

Não há suporte.

RequestCustomPromptAsync(IVectorView<IVpnCustomPromptElement>)

Solicita informações do usuário apresentando um prompt. Permite o uso de elementos de prompt que podem ser misturados para construir um prompt completo para o usuário. A entrada fornecida pelo usuário é retornada ao chamador nos objetos especificados.

RequestVpnPacketBuffer(VpnDataPathType, VpnPacketBuffer)

Solicita um IVpnPacketBuffer do pool especificado. Há um pool IVpnPacketBuffer para o caminho de envio e outro pool de IVpnPacketBuffer para o caminho de recebimento.

SetAllowedSslTlsVersions(Object, Boolean)

Não há suporte.

SetErrorMessage(String)

Não há suporte.

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

Cria o canal VPN a ser usado pelo plug-in VPN. Ele também cria um adaptador de rede L3 para aplicativos no computador cliente para poder ver a rede corporativa.

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

Cria o canal VPN a ser usado pelo plug-in VPN. Ele também cria um adaptador de rede L3 para aplicativos no computador cliente para poder ver a rede corporativa.

StartReconnectingTransport(Object, Object)

Reconecte o transporte do soquete. O contexto de transporte e transporte são os únicos parâmetros que podem ser alterados em uma reconexão de transporte de soquete.

Importante

Essa API não é implementada e recomendamos que você não a chame.

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

Cria o canal VPN a ser usado pelo plug-in VPN. Ele também cria um adaptador de rede L3 para aplicativos no computador cliente para poder ver a rede corporativa.

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

Cria o canal VPN para um número arbitrário de transportes a serem usados pelo plug-in VPN. Ele também cria um adaptador de rede L3 para aplicativos no computador cliente para poder ver a rede corporativa. Ele permite que a especificação de filtros de tráfego seja usada em cenários de VPN por aplicativo.

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

Cria o canal VPN a ser usado pelo plug-in VPN. Ele também cria um adaptador de rede L3 para aplicativos no computador cliente para poder ver a rede corporativa. Ele permite que a especificação de filtros de tráfego seja usada em cenários de VPN por aplicativo.

Stop()

Destrói um objeto de canal VPN estabelecido anteriormente. Desassocia e fecha a conexão outerTunnelTransport com o servidor VPN.

TerminateConnection(String)

Permite que um plug-in VPN indique uma mensagem de erro e encerre a tentativa de conexão executada dentro do método IVpnPlugin.Connect. Não deve ser chamado em casos de reconexão.

Eventos

ActivityChange

Não há suporte.

ActivityStateChange

Evento gerado quando o estado de atividade do canal é alterado. Usado por plug-ins VPN para determinar se o canal está ativo com tráfego ou ocioso.

Aplica-se a