Supplicant-API-Aufrufsequenz
Dieses Thema enthält die spezifische Aufrufsequenz für die Supplicant-API.
Übersicht über die Aufrufsequenz der Supplicant-API
Wenn das Supplicant ein EAP-Paket von einem Anbieter empfängt, z. B. einen Zugriffspunkt, tritt in der Regel der folgende supplicant-API-Aufrufflow auf.
- Die Anwendung ruft EapHostPeerBeginSession mit EAPHost-Konfigurationsdaten und Benutzerdaten auf. Bei einem erfolgreichen Aufruf wird ein EAP_SESSION_HANDLE Sitzungshandle zurückgegeben.
- Jedes vom Supplicant empfangene Paket wird durch einen Aufruf von EapHostPeerProcessReceivedPacket verarbeitet. Der Supplicant ruft dann die Funktion auf, die dem von der Funktion zurückgegebenen Aktionscode entspricht.
- Wenn der Aktionscode EapHostPeerResponseSend ist, ruft der Supplicant EapHostPeerGetSendPacket auf, um die Antwort abzurufen, die an den Authentifikator gesendet werden soll.
- Wenn während der Sitzung der Aktionscode, der an das Supplicant zurückgegeben wird , EapHostPeerResponseRespond lautet, gibt dies an, dass EAP-Attribute verfügbar sind. Das Supplicant ruft dann EapHostPeerGetResponseAttributes auf, um sie abzurufen. Diese Attribute enthalten zusätzliche Daten, die während des Authentifizierungsprozesses verwendet werden. Nachdem supplicant die Verarbeitung der Attribute abgeschlossen hat, ruft es EapHostPeerSetResponseAttributes auf, wodurch die Daten aktualisiert werden. Diese Funktion gibt einen Aktionscode zurück, der die nächste Aktion des Bittstellers bestimmt.
- Wenn der Aktionscode EapHostPeerResponseInvokeUI ist, löst der Supplicant ein Benutzeroberflächendialogfeld aus, um interaktive Daten vom Benutzer abzurufen, z. B. Anmeldeinformationen oder Identitätsinformationen. Siehe Benutzerinteraktion mit dem Aufrufflow der Supplicant-API.
- Wenn der Aktionscode EapHostPeerResponseResult ist, gibt dies an, dass die Ergebnisse der Authentifizierungssitzung dem Supplicant zur Verfügung stehen. Das Supplicant ruft dann EapHostPeerGetResult auf, um die Ergebnisse zu erhalten. Unabhängig davon, ob die Ergebnisse auf Erfolg oder Fehler hindeuten, ruft der Supplicant EapHostPeerEndSession auf. Im Falle eines Fehlers kann die erneute Authentifizierung versucht werden, indem sie eine weitere Sitzung mit EAPHost öffnen und eine neue Identität bereitstellen oder die Authentifizierung mit der ursprünglichen Identität erneut versuchen.
Benutzerinteraktion mit dem Aufrufflow der Supplicant-API
In bestimmten Fällen muss der Bittsteller Informationen vom Benutzer abrufen, um den Authentifizierungsprozess fortzusetzen.
In der folgenden Liste wird die Reihenfolge der Aufrufe im Supplicant- und EAPHost-UI-Prozess veranschaulicht, die zum Aktivieren der interaktiven Eingabe erforderlich sind.
Das Supplicant ruft den aktuellen Benutzeroberflächenkontext ab, indem EapHostPeerGetUIContext aufgerufen wird.
Der Supplicant sendet dann die Benutzeroberflächenkontextdaten an den prozess der supplicant UI.
Hinweis
Der UI-Prozess, der normalerweise die Benutzeroberfläche sammelt oder die interaktive Benutzeroberfläche verarbeitet, ist vom Bittprozess getrennt. Das Trennen der beiden Prozesse ist keine Anforderung von EAPHost, hat jedoch den Vorteil, dass der UI-Prozess mit dem Desktop interagieren kann.
Wenn der Supplicant die Benutzeroberfläche selbst rendern möchte, ruft es die EapHostPeerQueryInteractiveUIInputFields-Funktion auf, um die Eingabefelder für interaktive UI-Komponenten abzurufen, die ausgelöst werden sollen. Andernfalls folgt es dem herkömmlichen Modell des Aufrufens der interaktiven Benutzeroberfläche der Methode durch Aufrufen von EapHostPeerInvokeInteractiveUI
Hinweis
Wenn EAP_E_EAPHOST_METHOD_OPERATION_NOT_SUPPORTED zurückgegeben wird, muss der Supplicant dem herkömmlichen Modell des Aufrufens der interaktiven Benutzeroberfläche der Methode folgen, indem EapHostPeerInvokeInteractiveUI aufgerufen wird. Wenn ein Fehler auftritt, gibt EapHostPeerQueryInteractiveUIInputFields einen anderen Rückgabecode als NULL zurück.
Unabhängig davon, ob der Supplicant EapHostPeerQueryInteractiveUIInputFields oder EaphostPeerInvokeInteractiveUI aufruft, übergibt der Ui-Prozess die vorhandenen Kontextdaten und lädt Eappcfg.dll. Die entsprechende Benutzeroberfläche wird ausgelöst, um die neuen Daten zu sammeln. Die neuen Benutzeroberflächenkontextdaten, die jetzt möglicherweise Benutzereingaben enthalten, werden kopiert, und die alten Kontextdaten werden mit einem Aufruf von EapPeerFreeMemory freigegeben.
Der UI-Prozess gibt die neuen Kontextdaten an das Supplicant zurück, der EapHostPeerSetUIContext aufruft, um sie festzulegen.
Zugehörige Themen