Partilhar via


Manipulando o evento de autenticação de ponto de acesso

Windows 8, Windows 8.1 e Windows 10 disparam o evento de autenticação de ponto de acesso quando detecta um portal cativo que dá suporte ao WISPr (Provedor de Serviços de Internet Sem Fio).

Quando o evento ocorre, o aplicativo receptor deve chamar imediatamente a função Windows.Networking.NetworkOperator.HotspotAuthentication.TryGetAuthenticationContext usando o token de evento fornecido como um argumento para o manipulador de eventos. Essa função retorna um objeto que gerencia a tentativa de autenticação de ponto de acesso. Caso a função falhe, o manipulador de eventos deverá sair sem executar nenhuma ação adicional.

As propriedades no objeto permitem que seu aplicativo recupere os seguintes itens:

  • O SSID da rede sem fio.

  • Detalhes sobre o adaptador de rede conectado ao hotspot.

  • A URL que contém a mensagem WISPr.

  • O conteúdo XML da mensagem WISPr.

  • A URL de autenticação à qual as credenciais são fornecidas.

Existem outras APIs para recuperar os seguintes itens:

Usando essas informações e qualquer outra informação que seu aplicativo precise obter do sistema local ou da rede, as credenciais podem ser geradas. O objeto também contém métodos que permitem que o aplicativo continue ou conclua a autenticação de hotspot.

As seções a seguir estão disponíveis neste tópico:

Emitir credenciais

No caso mais simples, o aplicativo gera credenciais com base nas informações que tem ou pode recuperar. Por exemplo, um nome de usuário e uma senha são gerados usando informações no conteúdo wispr e informações sobre o adaptador de rede.

Depois de executar as ações necessárias para gerar ou obter credenciais, o aplicativo chama o método IssueCredentials no objeto HotspotAuthenticationContext . Esse método permite que o aplicativo forneça o seguinte:

  • O parâmetro UserName do WISPr

  • O parâmetro WISPr Password

  • Parâmetros arbitrários não padrão a serem incluídos na resposta WISPr

  • Comportamento em caso de falha

Se o servidor rejeitar as credenciais fornecidas pelo aplicativo, o Windows se desconectará da rede e não tentará novamente uma conexão na sessão de usuário atual. O sinalizador final permite que o aplicativo indique que, se as credenciais não forem bem-sucedidas, o Windows nunca deverá repetir automaticamente uma conexão usando esse perfil.

Há duas variações dessa API. O método IssueCredentials passa os parâmetros para o Windows e retorna instantaneamente. Essa API não fornece o resultado da tentativa de autenticação. O método IssueCredentialsAsync, introduzido em Windows 8.1, é uma versão assíncrona que permite que os aplicativos recuperem o resultado da tentativa de autenticação.

Anular autenticação

Se o aplicativo descobrir que não pode gerar credenciais para a rede atual (porque os contratos de roaming foram alterados, as informações não estão disponíveis ou por outro motivo), ele deve chamar o método AbortAuthentication no objeto HotspotAuthenticationContext .

O Windows se desconecta da rede e não reattempt uma conexão na sessão de usuário atual. Essa função aceita um sinalizador que indica que o Windows nunca deve repetir automaticamente uma conexão usando esse perfil.

Nota Esse método não remove o perfil do sistema e o aplicativo pode ser solicitado a solicitar credenciais novamente se o usuário tentar se conectar manualmente à rede. Se o perfil for completamente removido, o aplicativo deverá fornecer um novo arquivo de provisionamento que remova o perfil associado.

Usar métodos de autenticação alternativos

Se o aplicativo puder se autenticar usando um método diferente de WISPr, ele poderá fazer isso. Depois de autenticar com êxito na rede usando um método alternativo, ele deve concluir a conexão chamando o método SkipAuthentication no objeto HotspotAuthenticationContext . Quando esse método é chamado, o Windows detecta novamente a conectividade com a Internet, ajudando assim a interface do usuário a refletir corretamente o estado autenticado.

Nota O evento HotspotAuthentication não é invocado para hotspots que não anunciam suporte para o protocolo WISPr. No entanto, isso permite que um aplicativo escolha um protocolo diferente a ser usado em resposta ou use uma versão personalizada do WISPr, se necessário.

Interagir com o usuário

Se a interação do usuário for necessária antes que a autenticação possa continuar, o aplicativo deverá chamar o método TriggerAttentionRequired no objeto HotspotAuthenticationContext . Esse método é útil nas seguintes circunstâncias:

  • O usuário optou por não armazenar credenciais no aplicativo e deve entrar.

  • Concluir a conexão cobrará o crédito do usuário cartão ou outra conta; portanto, o consentimento é necessário antes de continuar.

  • Nenhum crédito está disponível na conta do usuário e uma nova compra é necessária.

Esse método não conclui a autenticação. Quando esse método é invocado, o aplicativo solicita que seja aberto em primeiro plano usando os argumentos especificados. O token de evento deve ser passado para o aplicativo em primeiro plano para que ele possa recuperar o objeto HotspotAuthenticationContext novamente e concluir a autenticação usando um dos outros três métodos.

Não há garantia de que a solicitação do aplicativo para abrir em primeiro plano seja bem-sucedida. O evento HotspotAuthentication pode ocorrer devido a uma conexão automática enquanto o computador está em Espera Conectada. O aplicativo é iniciado somente quando o computador não está mais em Espera Conectada, foi desbloqueado e ainda está conectado à rede sem fio. Como isso atrasa o acesso à Internet até que o usuário desbloqueie o computador, esse estado deve ser evitado sempre que as credenciais puderem ser geradas automaticamente.

Autenticação WISPr