Gestion de l’événement d’authentification par point d’accès
Windows 8, Windows 8.1 et Windows 10 déclencher l’événement d’authentification de point d’accès lorsqu’il détecte un portail captif qui prend en charge l’itinérance du fournisseur de services Internet sans fil (WISPr).
Lorsque l’événement se produit, l’application de réception doit immédiatement appeler la fonction Windows.Networking.NetworkOperator.HotspotAuthentication.TryGetAuthenticationContext à l’aide du jeton d’événement fourni comme argument au gestionnaire d’événements. Cette fonction retourne un objet qui gère la tentative d’authentification de point d’accès. En cas d’échec de la fonction, le gestionnaire d’événements doit quitter sans effectuer d’actions supplémentaires.
Les propriétés de l’objet permettent à votre application de récupérer les éléments suivants :
SSID du réseau sans fil.
Détails sur la carte réseau connectée au point d’accès.
URL qui contient le message WISPr.
Charge utile XML du message WISPr.
URL d’authentification à laquelle les informations d’identification sont fournies.
D’autres API existent pour récupérer les éléments suivants :
BSSID du réseau sans fil (voir Espace de noms Windows.Networking.Connectivity).
Paramètres DHCP du réseau (voir Win32 et COM pour les applications UWP).
En utilisant ces informations et toute autre information que votre application doit obtenir à partir du système local ou du réseau, des informations d’identification peuvent être générées. L’objet contient également des méthodes qui permettent à l’application de continuer ou de terminer l’authentification de point d’accès.
Les sections suivantes sont disponibles dans cette rubrique :
Émettre des informations d’identification
Dans le cas le plus simple, l’application génère des informations d’identification en fonction des informations qu’elle possède ou peut récupérer. Par exemple, un nom d’utilisateur et un mot de passe sont générés à l’aide des informations de la charge utile WISPr et des informations sur la carte réseau.
Après avoir effectué les actions nécessaires pour générer ou obtenir des informations d’identification, l’application appelle la méthode IssueCredentials sur l’objet HotspotAuthenticationContext . Cette méthode permet à l’application de fournir les éléments suivants :
Paramètre WISPr UserName
Paramètre de mot de passe WISPr
Paramètres non standard arbitraires à inclure dans la réponse WISPr
Comportement en cas d’échec
Si le serveur rejette les informations d’identification fournies par l’application, Windows se déconnecte du réseau et n’effectue pas de nouvelle tentative de connexion dans la session utilisateur active. L’indicateur final permet à l’application d’indiquer qu’en cas d’échec des informations d’identification, Windows ne doit jamais réessayer automatiquement une connexion à l’aide de ce profil.
Il existe deux variantes de cette API. La méthode IssueCredentials transmet les paramètres à Windows, puis retourne instantanément. Cette API ne fournit pas le résultat de la tentative d’authentification. La méthode IssueCredentialsAsync, introduite dans Windows 8.1, est une version asynchrone qui permet aux applications de récupérer le résultat de la tentative d’authentification.
Abandonner l’authentification
Si l’application découvre qu’elle ne peut pas générer d’informations d’identification pour le réseau actuel (parce que les contrats d’itinérance ont changé, les informations sont indisponibles ou pour une autre raison), elle doit appeler la méthode AbortAuthentication sur l’objet HotspotAuthenticationContext .
Windows se déconnecte du réseau et ne retente pas de connexion dans la session utilisateur actuelle. Cette fonction accepte un indicateur qui indique que Windows ne doit jamais réessayer automatiquement une connexion à l’aide de ce profil.
Note Cette méthode ne supprime pas le profil du système, et l’application peut être à nouveau invitée à entrer des informations d’identification si l’utilisateur tente manuellement de se connecter au réseau. Si le profil est complètement supprimé, l’application doit fournir un nouveau fichier d’approvisionnement qui supprime le profil associé.
Utiliser d’autres méthodes d’authentification
Si l’application peut s’authentifier à l’aide d’une méthode autre que WISPr, elle peut le faire. Après s’être authentifié auprès du réseau à l’aide d’une autre méthode, il doit terminer la connexion en appelant la méthode SkipAuthentication sur l’objet HotspotAuthenticationContext . Lorsque cette méthode est appelée, Windows détecte à nouveau la connectivité à Internet, ce qui aide l’interface utilisateur à refléter correctement l’état authentifié.
Note L’événement HotspotAuthentication n’est pas appelé pour les points d’accès qui n’annoncent pas la prise en charge du protocole WISPr. Toutefois, cela permet à une application de choisir un autre protocole à utiliser en réponse, ou d’utiliser une version personnalisée de WISPr si nécessaire.
Interagir avec l’utilisateur
Si l’utilisateur doit interagir avant que l’authentification puisse continuer, l’application doit appeler la méthode TriggerAttentionRequired sur l’objet HotspotAuthenticationContext . Cette méthode est utile dans les circonstances suivantes :
L’utilisateur a choisi de ne pas stocker les informations d’identification dans l’application et doit se connecter.
L’achèvement de la connexion facture le crédit de l’utilisateur carte ou un autre compte ; par conséquent, le consentement est requis avant de continuer.
Aucun crédit n’est disponible sur le compte de l’utilisateur et un nouvel achat est requis.
Cette méthode ne termine pas l’authentification. Lorsque cette méthode est appelée, l’application demande à être ouverte au premier plan à l’aide des arguments spécifiés. Le jeton d’événement doit être passé à l’application de premier plan afin qu’elle puisse récupérer à nouveau l’objet HotspotAuthenticationContext et terminer l’authentification à l’aide de l’une des trois autres méthodes.
Il n’est pas garanti que la demande d’ouverture de l’application au premier plan aboutisse. L’événement HotspotAuthentication peut se produire en raison d’une connexion automatique alors que l’ordinateur est en veille connectée. L’application est lancée uniquement lorsque l’ordinateur n’est plus en veille connectée, qu’il a été déverrouillé et qu’il est toujours connecté au réseau sans fil. Étant donné que cela retarde l’accès à Internet jusqu’à ce que l’utilisateur déverrouille l’ordinateur, cet état doit être évité chaque fois que des informations d’identification peuvent être générées automatiquement.