Compartilhar via


NetworkOperatorTetheringAccessPointConfiguration.IsAuthenticationKindSupportedAsync Método

Definição

Recupera de forma assíncrona um valor que indica se o adaptador Wi-Fi permite configurar o ponto de acesso com um tipo de autenticação específico.

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)

Parâmetros

authenticationKind
TetheringWiFiAuthenticationKind

Um valor de enumeração TetheringWiFiAuthenticationKind , especificando o tipo de autenticação sobre o qual consultar.

Retornos

Um objeto de operação assíncrono que, quando concluído, contém true se o tipo de autenticação tem suporte; caso contrário, false.

Atributos

Requisitos do Windows

Família de dispositivos
Windows 11, version 24H2 (introduzida na 10.0.26100.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v19.0)
Funcionalidades do aplicativo
wiFiControl

Exemplos

O exemplo de código abaixo lista dois métodos públicos: para definir a banda e o tipo de autenticação para uma conexão de vinculação. Há também um método privado de exemplo para buscar a configuração de vinculação atual da conexão de Internet ativa no computador. O objeto de configuração de tethering contém as propriedades do tipo de banda e autenticação que estão sendo definidas e é o único parâmetro para a API ConfigureAccessPointAsync usada para aplicar as alterações.

Em Main, as primeiras linhas de código definem a banda (usando o valor de 6 GHz, se ela estiver disponível). Observe também o uso da classe ApiInformation para marcar se há suporte para um tipo de autenticação específico. Depois disso, o código define o tipo de autenticação. Esse código demonstra o uso de valores de enumeração de TetheringWiFiBand e TetheringWiFiAuthenticationKind.

Nos métodos públicos SetBandForWiFiAccessPointAsync e SetAuthenticationKindForWiFiAccessPointAsync, o código mostra o seguinte:

  • Buscando a configuração de AP para a conexão de Internet ativa no computador.
  • Atualizando as propriedades do tipo de banda e autenticação no objeto de configuração (NetworkOperatorTetheringAccessPointConfiguration).
  • Aplicando a configuração atualizada e retornando a configuração aplicada com êxito (ou null no caso de falha).
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);
        }
    }
}

Aplica-se a