Поделиться через


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 на переднем плане. Это часто используется, чтобы позволить пользователю вводить учетные данные. АктивироватьForeground можно вызывать только из реализации IVpnPlugin.Connect. Пока приложение находится на переднем плане, обычное время ожидания Подключения приостанавливается.

Вызов ActivateForeground будет отменен при длительной паузе (около 10 минут). Если не удается запустить, подключаемый модуль в идеале должен поддерживать метод проверки подлинности, который не требует пользовательского интерфейса.

Предназначено для поддержки веб-схем проверки подлинности, таких как язык разметки утверждений безопасности (SAML) и проверка подлинности Azure Active Directory (AAD).

AddAndAssociateTransport(Object, Object)

Подготавливает, помечает и создает транспорт для использования платформой VPN в качестве транспортного канала связи подключаемого модуля VPN с VPN-сервером. Этот вызов необходимо выполнить перед любыми другими операциями, связанными с API платформы VPN.

AppendVpnReceivePacketBuffer(VpnPacketBuffer)

Добавляет объект получения VpnPacketBuffer в канал.

AppendVpnSendPacketBuffer(VpnPacketBuffer)

Добавляет объект send VpnPacketBuffer в канал.

AssociateTransport(Object, Object)

Подготавливает и помечает транспорт для использования платформой VPN в качестве транспортного канала, сообщающего подключаемый модуль VPN к VPN-серверу. Этот вызов необходимо выполнить перед любыми другими операциями, связанными с API платформы VPN.

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 получение учетных данных у пользователя. Подключаемый модуль может указать тип и форму собираемых учетных данных. Результатом является объект, содержащий учетные данные main в зависимости от типа и дополнительных учетных данных для случаев изменения и истечения срока действия.

RequestCredentialsAsync(VpnCredentialType)

Запрашивает платформу VPN для сбора учетных данных заданного типа от пользователя.

RequestCredentialsAsync(VpnCredentialType, UInt32)

Запрашивает платформу VPN для получения учетных данных пользователя. Подключаемый модуль может указать тип и форму собираемых учетных данных. Результатом является объект, содержащий учетные данные main в зависимости от типа и вторичные учетные данные для случаев изменения и истечения срока действия.

RequestCredentialsAsync(VpnCredentialType, UInt32, Certificate)

Платформа VPN для сбора учетных данных пользователя. Если для получения учетных данных или согласия требуется взаимодействие с пользователем, платформа обеспечивает необходимое взаимодействие с пользователем. Подключаемый модуль VPN должен запрашивать учетные данные перед использованием учетных данных любого типа, даже если цель не заключается в вызове взаимодействия с пользователем.

RequestCustomPrompt(IVectorView<IVpnCustomPrompt>)

Не поддерживается.

RequestCustomPromptAsync(IVectorView<IVpnCustomPromptElement>)

Запрашивает сведения у пользователя, предоставляя запрос. Позволяет использовать элементы prompt, которые можно смешать для создания полного запроса для пользователя. Входные данные, предоставленные пользователем, возвращаются вызывающей объекту в указанных объектах.

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. Отменяет связь и закрывает подключение outerTunnelTransport к VPN-серверу .

TerminateConnection(String)

Позволяет подключаемого модуля VPN указать сообщение об ошибке и завершить попытку подключения, выполненную в методе IVpnPlugin.Connect . Не следует вызывать в случаях повторного подключения.

События

ActivityChange

Не поддерживается.

ActivityStateChange

Событие, возникает при изменении состояния активности канала. Используется подключаемыми модулями VPN для определения активности канала с трафиком или бездействия.

Применяется к