Gestione dell'evento di autenticazione hotspot

Windows 8, Windows 8.1 e Windows 10 attivare l'evento di autenticazione hotspot quando rileva un portale captive che supporta il roaming wiSPr (Wireless Internet Service Provider roaming).

Quando si verifica l'evento, l'app ricevente deve chiamare immediatamente la funzione Windows.Networking.NetworkOperator.HotspotAuthentication.TryGetAuthenticationContext usando il token di evento fornito come argomento per il gestore eventi. Questa funzione restituisce un oggetto che gestisce il tentativo di autenticazione hotspot. Nel caso in cui la funzione ha esito negativo, il gestore eventi deve uscire senza eseguire altre azioni.

Le proprietà dell'oggetto consentono all'app di recuperare gli elementi seguenti:

  • SSID della rete wireless.

  • Dettagli sulla scheda di rete connessa all'hotspot.

  • URL che contiene il messaggio WISPr.

  • Payload XML del messaggio WISPr.

  • URL di autenticazione a cui vengono fornite le credenziali.

Esistono altre API per recuperare gli elementi seguenti:

Usando queste informazioni e qualsiasi altra informazione che l'app deve ottenere dal sistema locale o dalla rete, è possibile generare le credenziali. L'oggetto contiene anche metodi che consentono all'app di continuare o completare l'autenticazione hotspot.

In questo argomento sono disponibili le sezioni seguenti:

Rilasciare le credenziali

Nel caso più semplice, l'app genera credenziali in base alle informazioni che contiene o può recuperare. Ad esempio, un nome utente e una password vengono generati usando informazioni nel payload WISPr e informazioni sulla scheda di rete.

Dopo aver eseguito tutte le azioni necessarie per generare o ottenere le credenziali, l'app chiama il metodo IssueCredentials nell'oggetto HotspotAuthenticationContext . Questo metodo consente all'app di fornire quanto segue:

  • Parametro WISPr UserName

  • Parametro password WISPr

  • Parametri arbitrari non standard da includere nella risposta WISPr

  • Comportamento in caso di errore

Se il server rifiuta le credenziali fornite dall'app, Windows si disconnette dalla rete e non ritenta una connessione nella sessione utente corrente. Il flag finale consente all'applicazione di indicare che, se le credenziali hanno esito negativo, Windows non deve mai ripetere automaticamente una connessione usando questo profilo.

Esistono due varianti di questa API. Il metodo IssueCredentials passa i parametri a Windows e quindi restituisce immediatamente. Questa API non fornisce il risultato del tentativo di autenticazione. Il metodo IssueCredentialsAsync, introdotto in Windows 8.1, è una versione asincrona che consente alle applicazioni di recuperare il risultato del tentativo di autenticazione.

Interrompere l'autenticazione

Se l'app rileva che non può generare credenziali per la rete corrente (perché i contratti mobili sono stati modificati, le informazioni non sono disponibili o per un altro motivo), deve chiamare il metodo AbortAuthentication sull'oggetto HotspotAuthenticationContext .

Windows si disconnette dalla rete e non annulla una connessione nella sessione utente corrente. Questa funzione accetta un flag che indica che Windows non deve mai ripetere automaticamente una connessione usando questo profilo.

Nota Questo metodo non rimuove il profilo dal sistema e l'app può richiedere nuovamente le credenziali se l'utente tenta manualmente di connettersi alla rete. Se il profilo viene completamente rimosso, l'app deve fornire un nuovo file di provisioning che rimuove il profilo associato.

Usare metodi di autenticazione alternativi

Se l'app può eseguire l'autenticazione usando un metodo diverso da WISPr, può farlo. Dopo aver eseguito correttamente l'autenticazione alla rete usando un metodo alternativo, è necessario completare la connessione chiamando il metodo SkipAuthentication nell'oggetto HotspotAuthenticationContext . Quando questo metodo viene chiamato, Windows rileva nuovamente la connettività a Internet, consentendo così all'interfaccia utente di riflettere correttamente lo stato autenticato.

Nota L'evento HotspotAuthentication non viene richiamato per gli hotspot che non annunciano il supporto per il protocollo WISPr. Tuttavia, ciò consente a un'app di scegliere un protocollo diverso da usare in risposta o di usare una versione personalizzata di WISPr, se necessario.

Interagire con l'utente

Se l'interazione dell'utente è necessaria prima che l'autenticazione possa continuare, l'app deve chiamare il metodo TriggerAttentionRequired nell'oggetto HotspotAuthenticationContext . Questo metodo è utile nelle circostanze seguenti:

  • L'utente ha scelto di non archiviare le credenziali nell'app e deve eseguire l'accesso.

  • Il completamento della connessione addebiterà la carta di credito dell'utente o un altro account; pertanto, il consenso è necessario prima di procedere.

  • Non è disponibile alcun credito nell'account dell'utente e è necessario un nuovo acquisto.

Questo metodo non completa l'autenticazione. Quando questo metodo viene richiamato, l'app richiede di essere aperta in primo piano usando gli argomenti specificati. Il token evento deve essere passato all'applicazione in primo piano in modo che possa recuperare di nuovo l'oggetto HotspotAuthenticationContext e completare l'autenticazione usando uno degli altri tre metodi.

La richiesta dell'app di aprire in primo piano non è garantita l'esito positivo. L'evento HotspotAuthentication può verificarsi a causa di una connessione automatica mentre il computer è in standby connesso. L'app viene avviata solo quando il computer non è più in standby connesso, è stato sbloccato ed è ancora connesso alla rete wireless. Poiché questo ritarda l'accesso a Internet fino a quando l'utente non sblocca il computer, questo stato deve essere evitato ogni volta che le credenziali possono essere generate automaticamente.

Autenticazione WISPr