Share via


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

VpnChannel의 구성에 해당하는 VpnChannelConfiguration 개체를 가져오거나 설정하며 VPN 서버와의 통신을 설정하는 방법을 지시합니다.

CurrentRequestTransportContext

사용 중인 전송 컨텍스트 개체(예: 호스트 또는 서버 이름)를 가져옵니다.

Id

VPN 채널의 고유한 instance ID를 가져옵니다. 이는 두 VPN 연결 인스턴스 간의 demuxing 작업을 간소화하는 데 사용할 수 있습니다.

PlugInContext

VPN 플러그 인이 세션이 진행되는 동안 나중에 사용할 수 있도록 내부 상태를 VpnChannel 개체와 연결하는 데 사용할 수 있는 컨텍스트 개체를 가져오거나 설정합니다.

SystemHealth

클라이언트 컴퓨터의 상태 문을 가져옵니다.

메서드

ActivateForeground(String, ValueSet)

전경에서 VPN 앱을 활성화합니다. 사용자가 자격 증명을 입력하도록 하는 데 자주 사용됩니다. IVpnPlugin.Connect 구현에서만 ActivateForeground를 호출할 수 있습니다. 앱이 포그라운드에 있는 동안 일반 연결 시간 제한이 일시 중지됩니다.

일시 중지 시간이 길면 ActivateForeground 호출이 취소됩니다(약 10분). 시작할 수 없는 경우 플러그 인은 UI(사용자 인터페이스)가 필요하지 않은 인증 방법을 이상적으로 지원해야 합니다.

SAML(Security Assertion Markup Language) 및 AAD(Azure Active Directory) 인증과 같은 웹 기반 인증 체계를 지원하기 위한 것입니다.

AddAndAssociateTransport(Object, Object)

VPN 프레임워크에서 VPN 플러그 인을 VPN 서버에 전달하는 전송 링크로 사용할 전송을 준비, 표시 및 만듭니다. 이 호출은 VPN 프레임워크 API와 관련된 다른 작업 전에 수행해야 합니다.

AppendVpnReceivePacketBuffer(VpnPacketBuffer)

수신 VpnPacketBuffer 개체를 채널에 추가합니다.

AppendVpnSendPacketBuffer(VpnPacketBuffer)

채널에 VpnPacketBuffer 개체 보내기를 추가합니다.

AssociateTransport(Object, Object)

VPN 프레임워크에서 사용할 전송을 VPN 플러그 인을 VPN 서버에 전달하는 전송 링크로 준비하고 표시합니다. 이 호출은 VPN 프레임워크 API와 관련된 다른 작업 전에 수행해야 합니다.

FlushVpnReceivePacketBuffers()

추가된 수신 패킷 버퍼를 플러시합니다. AppendVpnReceivePacketBuffer를 참조하세요.

FlushVpnSendPacketBuffers()

추가된 모든 송신 패킷 버퍼를 플러시합니다. AppendVpnSendPacketBuffer를 참조하세요.

GetSlotTypeForTransportContext(Object)

지정된 전송 컨텍스트 개체의 슬롯 유형(하드웨어 또는 소프트웨어)을 검색합니다.

GetVpnReceivePacketBuffer()

수신 패킷 버퍼 풀의 VpnPacketBuffer 개체를 VPN 서버에서 로컬 네트워크 스택으로 받은 패킷의 캡슐화 또는 삽입에 사용할 것을 요청합니다.

GetVpnSendPacketBuffer()

클라이언트 네트워크 스택에서 VPN 서버로 데이터 패킷을 캡슐화하고 전송하는 데 사용할 패킷 버퍼 풀 보내기에서 VpnPacketBuffer 개체를 검색합니다.

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 채널 개체를 삭제합니다. VPN 서버에 대한 outerTunnelTransport 연결을 분리하고 닫습니다.

TerminateConnection(String)

VPN 플러그 인이 오류 메시지를 나타내고 IVpnPlugin.Connect 메서드 내에서 수행된 연결 시도를 종료하도록 허용합니다. 재연결 사례에 대해 를 호출해서는 안 됩니다.

이벤트

ActivityChange

지원되지 않습니다.

ActivityStateChange

채널의 활동 상태가 변경되었을 때 발생하는 이벤트입니다. VPN 플러그 인에서 채널이 트래픽 또는 유휴 상태인지 여부를 확인하는 데 사용됩니다.

적용 대상