Windows.Networking.Vpn Namespace

The classes in this namespace enable you to create, edit, and manage virtual private network (VPN) connections, and to write plugins for controlling a VPN connection using the Windows VPN platform.

Important

To use the classes in this namespace, you must declare the networkingVpnProvider restricted capability.

Classes

VpnAppId

Represents an application identifier, which can be a file path, a package family name, or a fully qualified binary name (FQBN) string.

VpnChannel

Provides methods to create and destroy a VPN channel, and methods to perform buffer management. A VPN channel is the object in the system that links the network traffic data flow between the VPN plug-in's VPN server socket and the client machine network stack.

VpnChannelActivityEventArgs

VpnChannelActivityEventArgs is not supported and may be altered or unavailable in the future. Instead, use VpnChannelActivityStateChangedArgs.

VpnChannelActivityStateChangedArgs

Represents the ActivityStateChanged event specifying the new VPN channel state (idle or active).

VpnChannelConfiguration

The configuration of the VpnChannel, which dictates how to establish the communication with the VPN server.

VpnCredential

Represents the credentials requested and provided by the platform. This class holds username, password, PIN, OTP, and any additional PIN or certificate to which access has been granted.

VpnCustomCheckBox

VpnCustomCheckBox is not supported and may be altered or unavailable in the future. Instead, use VpnCustomPromptBooleanInput.

VpnCustomComboBox

VpnCustomComboBox is not supported and may be altered or unavailable in the future. Instead, use VpnCustomPromptOptionSelector.

VpnCustomEditBox

VpnCustomEditBox is not supported and may be altered or unavailable in the future. Instead, use VpnCustomPromptTextInput.

VpnCustomErrorBox

VpnCustomErrorBox is not supported and may be altered or unavailable in the future. Instead, use VpnCustomPromptText.

VpnCustomPromptBooleanInput

Represents a Boolean type of UI control prompt required from the user. This is typically a checkbox. This is used in the construction of custom prompts used in the VpnChannel.RequestCustomPromptAsync method.

VpnCustomPromptOptionSelector

Represents a multiple choice UI control prompt required from the user. This is typically a combo box. This is used in the construction of custom prompts used in the VpnChannel.RequestCustomPromptAsync method.

VpnCustomPromptText

Represents a text UI element used in the VpnChannel.RequestCustomPromptAsync method.

VpnCustomPromptTextInput

Represents a text input UI element used in the RequestCustomPromptAsync method.

VpnCustomTextBox

VpnCustomTextBox is not supported and may be altered or unavailable in the future. Instead, use VpnCustomPromptText.

VpnDomainNameAssignment

Contains VPN domain name policies, like name resolution, namespace configuration, and web proxies.

VpnDomainNameInfo

Specifies the name policy for a specific namespace. It can specify the DNS servers to use for name resolution of the namespace, the web proxies to use when connecting to the namespace, or whether it should be exempted from the policy itself.

VpnForegroundActivatedEventArgs

Arguments passed with the Activated event (see Application.OnActivated) when your VPN app is activated in the foreground.

VpnForegroundActivationOperation

Represents a VPN foreground operation. When you're done handling a foreground operation, you must call the Complete method.

VpnInterfaceId

Represents an interface ID used in the construction and assignment of an IPv6 address to the VPN interface. The ID contained in this class fills the interface ID portion of the IPv6 address.

VpnManagementAgent

Allows the creation, deletion, edit, connect, and disconnect flows for VPN. These can be used to manage the lifecycle of a VPN profile, and to create a custom VPN connection manager.

VpnNamespaceAssignment

VpnNamespaceAssignment is not supported and may be altered or unavailable in the future. Instead, use VpnDomainNameAssignment.

VpnNamespaceInfo

VpnNamespaceInfo is not supported and may be altered or unavailable in the future. Instead, use VpnDomainNameInfo.

VpnNativeProfile

Represents a profile for an OS Native/Inbox VPN protocol.

VpnPacketBuffer

Used by the platform to manage a memory buffer. VpnPacketBuffer allows buffers to be chained together in a IVpnPacketBufferList object list to be sent or received in a specific order.

VpnPacketBufferList

Used to manage VpnPacketBuffer objects.

VpnPickedCredential

VpnPickedCredential is not supported and may be altered or unavailable in the future. Instead, use VpnCredential.

VpnPlugInProfile

Represents a VPN plug-in profile.

VpnRoute

Represents a route relative to the VPN channel. It is composed of an address and a prefix size to identify the subnet being routed. The route can then be either included or excluded from the VPN channel scope.

VpnRouteAssignment

Represents the list of routes assigned to the VPN channel for the correct flow and redirection of traffic.

VpnSystemHealth

Allows access to the security health of the system device.

VpnTrafficFilter

Defines the traffic filtering properties (including per app VPN). A description of the type of network traffic that will be allowed over the VPN connection, such as a specific application and protocol allowed for the connection.

VpnTrafficFilterAssignment

Allows the specification of a set of traffic filters as policy to a VPN channel.

Interfaces

IVpnChannelStatics

Provides static functions for VPN plug-ins.

IVpnCredential

Provides an interface for the VPN platform to support requested credentials.

IVpnCustomPrompt

Not supported.

IVpnCustomPromptElement

Provides a common interface for all UI element objects used in the VpnChannel.RequestCustomPromptAsync method.

IVpnDomainNameInfoFactory

Factory to create VpnDomainNameInfo objects.

IVpnInterfaceIdFactory

Factory to create VpnInterfaceId objects.

IVpnNamespaceInfoFactory

IVpnNamespaceInfoFactory is not supported and may be altered or unavailable in the future. Instead, use IVpnDomainNameInfoFactory.

IVpnPacketBufferFactory

This interface is reserved for system use.

IVpnPlugIn

Provides an interface to implement specific third party VPN client operations.

IVpnPlugInReconnectTransport
IVpnProfile

Exposes the VpnProfile base object.

IVpnRouteFactory

Factory to create VpnRoute objects.

Enums

VpnAppIdType

Specifies the type of AppId understood by the VPN platform.

VpnAuthenticationMethod

Specifies the type of authentication methods allowed by the operating system native VPN protocols.

VpnChannelActivityEventType

Specifies the type of activity events.

VpnChannelRequestCredentialsOptions

Specifies the values defining whether a requested credential is a retry case, or should be used for single sign on.

VpnCredentialType

Specifies the types of credentials that can be requested by the VPN platform.

VpnDataPathType

VpnDataPathType is not supported and may be altered or unavailable in the future.

VpnDomainNameType

Describes whether a name is a domain name suffix or a fully qualified domain name.

VpnIPProtocol

Defines constants that specify IP protocols (numeric values).

VpnManagementConnectionStatus

Values used to report the current status of a VPN profile.

VpnManagementErrorStatus

Describes the known VPN management errors.

VpnNativeProtocolType

Specifies the native protocol types.

VpnPacketBufferStatus

Defines constants that specify the possible states of the VPN packet buffer.

VpnRoutingPolicyType

Specifies the routing policy type.

Remarks

If you're an enterprise VPN developer, then you should consider your organizational licensing options. Many information technology (IT) admins prefer disconnected (offline) licensing in order to distribute a VPN app to users even when the user doesn't have access to the Microsoft Store. See Organizational licensing options for more details.

We recommend that you consider using the AppCenter SDK for collecting crash dumps for later analysis.