Interaktive Benutzeroberfläche

Der Anbieter, der das Authentifizierungsprotokoll implementiert, kann auch eine interaktive Benutzeroberfläche (UI) für das Protokoll bereitstellen. Die interaktive Benutzeroberfläche ermöglicht dem Authentifizierungsprotokoll, während der Authentifizierungssitzung bei Bedarf zusätzliche Informationen vom Benutzer zu erhalten.

Die interaktive Benutzeroberfläche kann in derselben DLL wie das Authentifizierungsprotokoll oder in einer separaten DLL implementiert werden. Außerdem kann die DLL, die die interaktive Benutzeroberfläche implementiert, mehr als ein Authentifizierungsprotokoll unterstützen. Der Pfad zur DLL für die interaktive Benutzeroberfläche wird im Registrierungswert RAS _ EAP _ VALUENAME _ INTERACTIVEUI unter dem Schlüssel für das Authentifizierungsprotokoll gespeichert. Weitere Informationen zum Erstellen dieses Registrierungswerts finden Sie unter EAP-Installation.

Die DLL für die interaktive Benutzeroberfläche sollte Einstiegspunkte für die folgenden Funktionen exportieren:

RasEapInvokeInteractiveUI
RasEapFreeMemory

Die interaktive Benutzeroberfläche muss WM _ COMMAND-Meldungen unterstützen, bei denen LOWORD(wParam) IDCANCEL entspricht.

Um die interaktive Benutzeroberfläche anzuzeigen, sollte das Authentifizierungsprotokoll das fInvokeInteractiveUI-Mitglied der STRUKTUR DER _ OUTPUT-AUSGABE _ VON OUTPUT von OUTPUT auf TRUE festlegen. Das Authentifizierungsprotokoll kann optional auch die Member pUIContextData und dwSizeOfUIContextData auf TRUE festlegen. Der Authentifizierungsdienst verwendet die Werte dieser Member, um Kontextdaten an die interaktive Benutzeroberfläche zu übergeben. Das Authentifizierungsprotokoll gibt die STRUKTUR FÜR DIE OUTPUT-Ausgabe VON OUTPUT _ _ als Parameter in der RasEapMakeMessage-Funktion zurück.

Der Authentifizierungsdienst ruft die interaktive Benutzeroberfläche auf, indem rasEapInvokeInteractiveUI aufgerufen wird. Der Dienst übergibt dann dem Authentifizierungsprotokoll einen Zeiger auf die Daten, die von der interaktiven Benutzeroberfläche beim nachfolgenden Aufruf von RasEapMakeMessage zurückgegeben werden. Der Zeiger wird als Member einerBAU _ EAP _ INPUT-Struktur übergeben. Nachdem RasEapMakeMessage zurückgegeben wurde, ruft der Dienst RasEapFreeMemory auf, um den von den Informationen belegten Arbeitsspeicher frei zu geben. Daher sollte das Authentifizierungsprotokoll die Informationen während des Aufrufs von RasEapMakeMessage in einen privaten Speicherpuffer kopieren.