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


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

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

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

AddAndAssociateTransport(Object, Object)

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

AppendVpnReceivePacketBuffer(VpnPacketBuffer)

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

AppendVpnSendPacketBuffer(VpnPacketBuffer)

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

RequestCredentialsAsync(VpnCredentialType)

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

RequestCredentialsAsync(VpnCredentialType, UInt32)

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

RequestCredentialsAsync(VpnCredentialType, UInt32, Certificate)

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

RequestCustomPrompt(IVectorView<IVpnCustomPrompt>)

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

RequestCustomPromptAsync(IVectorView<IVpnCustomPromptElement>)

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

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, чтобы определить, активен ли канал с трафиком или простоем.

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