다음을 통해 공유


NetworkOperatorTetheringAccessPointConfiguration.IsAuthenticationKindSupportedAsync 메서드

정의

Wi-Fi 어댑터가 특정 인증 종류로 액세스 지점을 구성할 수 있는지 여부를 나타내는 값을 비동기적으로 검색합니다.

public:
 virtual IAsyncOperation<bool> ^ IsAuthenticationKindSupportedAsync(TetheringWiFiAuthenticationKind authenticationKind) = IsAuthenticationKindSupportedAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<bool> IsAuthenticationKindSupportedAsync(TetheringWiFiAuthenticationKind const& authenticationKind);
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<bool> IsAuthenticationKindSupportedAsync(TetheringWiFiAuthenticationKind authenticationKind);
function isAuthenticationKindSupportedAsync(authenticationKind)
Public Function IsAuthenticationKindSupportedAsync (authenticationKind As TetheringWiFiAuthenticationKind) As IAsyncOperation(Of Boolean)

매개 변수

authenticationKind
TetheringWiFiAuthenticationKind

쿼리할 인증 종류를 지정 하는 TetheringWiFiAuthenticationKind 열거형 값입니다.

반환

완료되면 인증 종류가 지원되는지를 포함하는 true 비동기 작업 개체이고, false그렇지 않으면 입니다.

특성

Windows 요구 사항

디바이스 패밀리
Windows 11, version 24H2 (10.0.26100.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v19.0에서 도입되었습니다.)
앱 기능
wiFiControl

예제

아래 코드 예제에서는 두 가지 공용 메서드를 나열합니다. 즉, 테더링 연결에 대한 대역 및 인증 종류를 설정합니다. 컴퓨터에서 활성 인터넷 연결의 현재 테더링 구성을 가져오는 프라이빗 메서드의 예도 있습니다. 테더링 구성 개체에는 설정되는 대역 및 인증 종류 속성이 포함되며, 변경 내용을 적용하는 데 사용되는 ConfigureAccessPointAsync API의 유일한 매개 변수입니다.

Main에서 처음 몇 줄의 코드는 대역을 설정합니다(사용 가능한 경우 6GHz 값을 사용). 또한 ApiInformation 클래스를 사용하여 특정 인증 종류가 지원되는지 여부를 검사. 그런 다음, 코드는 인증 종류를 설정합니다. 이 코드는 TetheringWiFiBandTetheringWiFiAuthenticationKind의 열거형 값을 사용하는 방법을 보여 줍니다.

공개 메서드 SetBandForWiFiAccessPointAsyncSetAuthenticationKindForWiFiAccessPointAsync에서 코드는 다음을 보여 줍니다.

  • 컴퓨터에서 활성 인터넷 연결에 대한 AP 구성을 가져옵니다.
  • 구성 개체(NetworkOperatorTetheringAccessPointConfiguration)에서 대역 및 인증 종류 속성을 업데이트합니다.
  • 업데이트된 구성을 적용하고 성공적으로 적용된 구성(또는 null 실패 시)을 반환합니다.
using System;
using System.Threading.Tasks;
using Windows.Foundation.Metadata;
using Windows.Networking.NetworkOperators;
using Windows.Networking.Connectivity;

namespace DemoApp
{
    class DemoClass
    {
        private static NetworkOperatorTetheringAccessPointConfiguration GetCurrentAPConfig()
        {
            // Get the connection profile associated with the internet connection currently used by the local machine.
            ConnectionProfile currentConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
            if (currentConnectionProfile == null)
            {
                throw new InvalidOperationException("Machine isn't connected to the internet.");
            }

            NetworkOperatorTetheringManager tetheringManager =
                NetworkOperatorTetheringManager.CreateFromConnectionProfile(currentConnectionProfile);

            NetworkOperatorTetheringAccessPointConfiguration configuration =
                tetheringManager.GetCurrentAccessPointConfiguration();

            return configuration;
        }

        public static async Task<NetworkOperatorTetheringAccessPointConfiguration>
            SetBandForWiFiAccessPointAsync(TetheringWiFiBand wifiBand)
        {
            NetworkOperatorTetheringAccessPointConfiguration configuration = GetCurrentAPConfig();

            if (!await configuration.IsBandSupportedAsync(wifiBand))
            {
                throw new ArgumentException("Band parameter isn't supported on AP.");
            }

            configuration.Band = wifiBand;

            try
            {
                await tetheringManager.ConfigureAccessPointAsync(configuration);

                return configuration;
            }
            catch
            {
                return null;
            }
        }

        public static async Task<NetworkOperatorTetheringAccessPointConfiguration>
            SetAuthenticationKindForWiFiAccessPointAsync(TetheringWiFiAuthenticationKind wiFiAuthenticationKind)
        {
            if (!ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 16))
            {
                throw new InvalidOperationException("OS doesn't support configuring auth.");
            }

            NetworkOperatorTetheringAccessPointConfiguration configuration = GetCurrentAPConfig();

            if (!await configuration.IsAuthenticationKindSupportedAsync(wiFiAuthenticationKind))
            {
                throw new ArgumentException("Authentication kind parameter isn't supported on AP.");
            }

            configuration.AuthenticationKind = wiFiAuthenticationKind;

            try
            {
                await tetheringManager.ConfigureAccessPointAsync(configuration);

                return configuration;
            }
            catch
            {
                return null;
            }
        }

        public static void Main()
        {
            NetworkOperatorTetheringAccessPointConfiguration sampleResult1 = null;
            if (ApiInformation.IsEnumNamedValuePresent(
                "Windows.Networking.NetworkOperators.TetheringWiFiBand", "SixGigahertz"))
            {
                sampleResult1 = await SetBandForWiFiAccessPointAsync(TetheringWiFiBand.SixGigahertz);
            }
            else
            {
                sampleResult1 = await SetBandForWiFiAccessPointAsync(TetheringWiFiBand.FiveGigahertz);
            }

            NetworkOperatorTetheringAccessPointConfiguration sampleResult2 =
                await SetAuthenticationKindForWiFiAccessPointAsync(TetheringWiFiAuthenticationKind.Wpa3);
        }
    }
}

적용 대상