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 채널의 고유 인스턴스 ID를 가져옵니다. 이는 두 VPN 연결 인스턴스 간의 demuxing 작업을 간소화하는 데 사용할 수 있습니다.

PlugInContext

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

SystemHealth

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

메서드

ActivateForeground(String, ValueSet)

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

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 서버에 대한 외부TunnelTransport 연결을 연결 해제하고 닫습니다.

TerminateConnection(String)

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

이벤트

ActivityChange

지원되지 않습니다.

ActivityStateChange

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

적용 대상