Freigeben über


Behandeln des Hotspotauthentifizierungsereignisses

Windows 8, Windows 8.1 und Windows 10 das Hotspotauthentifizierungsereignis auslösen, wenn ein captive Portal erkannt wird, das WLAN-Roaming (WISPr) unterstützt.

Wenn das Ereignis auftritt, muss die empfangende App sofort die Windows.Networking.NetworkOperator.HotspotAuthentication.TryGetAuthenticationContext-Funktion aufrufen, indem sie das Ereignistoken verwendet, das als Argument für den Ereignishandler bereitgestellt wird. Diese Funktion gibt ein Objekt zurück, das den Hotspotauthentifizierungsversuch verwaltet. Falls die Funktion ausfällt, muss der Ereignishandler beendet werden, ohne zusätzliche Aktionen auszuführen.

Eigenschaften für das -Objekt ermöglichen es Ihrer App, die folgenden Elemente abzurufen:

  • Die SSID des Drahtlosnetzwerks.

  • Details zum Netzwerkadapter, der mit dem Hotspot verbunden ist.

  • Die URL, die die WISPr-Nachricht enthält.

  • Die XML-Nutzlast der WISPr-Nachricht.

  • Die Authentifizierungs-URL, für die Anmeldeinformationen angegeben werden.

Es sind andere APIs vorhanden, um die folgenden Elemente abzurufen:

Mithilfe dieser Informationen und aller anderen Informationen, die Ihre App vom lokalen System oder netzwerk abrufen muss, können Anmeldeinformationen generiert werden. Das Objekt enthält auch Methoden, mit denen die App die Hotspotauthentifizierung fortsetzen oder abschließen kann.

Die folgenden Abschnitte sind in diesem Thema verfügbar:

Anmeldeinformationen ausstellen

Im einfachsten Fall generiert die App Anmeldeinformationen basierend auf Informationen, die sie enthält oder abrufen kann. Beispielsweise werden ein Benutzername und ein Kennwort mithilfe von Informationen in der WISPr-Nutzlast und Informationen zum Netzwerkadapter generiert.

Nach dem Ausführen von Aktionen, die zum Generieren oder Abrufen von Anmeldeinformationen erforderlich sind, ruft die App die IssueCredentials-Methode für das HotspotAuthenticationContext-Objekt auf. Mit dieser Methode kann die App Folgendes bereitstellen:

  • Der WISPr UserName-Parameter

  • Der WISPr Password-Parameter

  • Beliebige nicht standardmäßige Parameter, die in die WISPr-Antwort eingeschlossen werden sollen

  • Verhalten bei Fehlern

Wenn der Server die von der App bereitgestellten Anmeldeinformationen ablehnt, trennt Windows die Verbindung vom Netzwerk und versucht keine Verbindung in der aktuellen Benutzersitzung. Mit dem endgültigen Flag kann die Anwendung angeben, dass Windows nie automatisch eine Verbindung mithilfe dieses Profils wiederholen sollte, wenn die Anmeldeinformationen nicht erfolgreich sind.

Es gibt zwei Varianten dieser API. Die IssueCredentials-Methode übergibt die Parameter an Windows und gibt dann sofort zurück. Diese API liefert nicht das Ergebnis des Authentifizierungsversuchs. Die IssueCredentialsAsync-Methode, die in Windows 8.1 eingeführt wurde, ist eine asynchrone Version, mit der Anwendungen das Ergebnis des Authentifizierungsversuchs abrufen können.

Authentifizierung abbrechen

Wenn die App feststellt, dass sie keine Anmeldeinformationen für das aktuelle Netzwerk generieren kann (da Roamingverträge geändert wurden, Informationen nicht verfügbar sind oder aus einem anderen Grund), muss sie die AbortAuthentication-Methode für das HotspotAuthenticationContext-Objekt aufrufen.

Windows trennt sich vom Netzwerk und stellt eine Verbindung in der aktuellen Benutzersitzung nicht wieder her. Diese Funktion akzeptiert ein Flag, das angibt, dass Windows niemals automatisch eine Verbindung mit diesem Profil wiederholen sollte.

Hinweis Diese Methode entfernt das Profil nicht aus dem System, und die App kann erneut zur Angabe von Anmeldeinformationen aufgefordert werden, wenn der Benutzer manuell versucht, eine Verbindung mit dem Netzwerk herzustellen. Wenn das Profil vollständig entfernt wird, muss die App eine neue Bereitstellungsdatei bereitstellen, die das zugeordnete Profil entfernt.

Verwenden alternativer Authentifizierungsmethoden

Wenn sich die App mit einer anderen Methode als WISPr authentifizieren kann, kann sie dies tun. Nach der erfolgreichen Authentifizierung beim Netzwerk mithilfe einer alternativen Methode muss die Verbindung durch Aufrufen der SkipAuthentication-Methode für das HotspotAuthenticationContext-Objekt abgeschlossen werden. Wenn diese Methode aufgerufen wird, erkennt Windows die Konnektivität mit dem Internet erneut und hilft der Benutzeroberfläche, den authentifizierten Zustand korrekt widerzuspiegeln.

Hinweis Das HotspotAuthentication-Ereignis wird nicht für Hotspots aufgerufen, die keine Unterstützung für das WISPr-Protokoll ankündigen. Dadurch kann eine App jedoch ein anderes Protokoll auswählen, das als Antwort verwendet werden soll, oder bei Bedarf eine benutzerdefinierte Version von WISPr verwenden.

Interagieren mit dem Benutzer

Wenn eine Benutzerinteraktion erforderlich ist, bevor die Authentifizierung fortgesetzt werden kann, muss die App die TriggerAttentionRequired-Methode für das HotspotAuthenticationContext-Objekt aufrufen. Diese Methode ist unter den folgenden Umständen nützlich:

  • Der Benutzer hat sich dafür ausgewählt, keine Anmeldeinformationen in der App zu speichern, und muss sich anmelden.

  • Der Abschluss der Verbindung belastet das Guthaben des Benutzers Karte oder eines anderen Kontos. Daher ist eine Zustimmung erforderlich, bevor Sie fortfahren.

  • Auf dem Konto des Benutzers ist kein Guthaben verfügbar, und ein neuer Kauf ist erforderlich.

Diese Methode schließt die Authentifizierung nicht ab. Wenn diese Methode aufgerufen wird, fordert die App an, mit den angegebenen Argumenten im Vordergrund geöffnet zu werden. Das Ereignistoken sollte an die Vordergrundanwendung übergeben werden, damit das HotspotAuthenticationContext-Objekt erneut abgerufen und die Authentifizierung mit einer der anderen drei Methoden abgeschlossen werden kann.

Die Anforderung der App, im Vordergrund zu öffnen, ist nicht garantiert, dass sie erfolgreich ist. Das HotspotAuthentication-Ereignis kann aufgrund einer automatischen Verbindung auftreten, während sich der Computer im verbundenen Standbymodus befindet. Die App wird nur gestartet, wenn sich der Computer nicht mehr im verbundenen Standbymodus befindet, entsperrt wurde und weiterhin mit dem drahtlosen Netzwerk verbunden ist. Da dadurch der Internetzugriff verzögert wird, bis der Benutzer den Computer entsperrt, sollte dieser Zustand vermieden werden, wenn Anmeldeinformationen automatisch generiert werden können.

WISPr-Authentifizierung