Erweiterterbarkeit vom Login-Framework (kundenspezifische Panels)

Wenn die Basisfunktionalität nicht ausreichend ist, kann sowohl das Standard- als auch das Serverlogin-Panel durch eine eigene Implementierung ersetzt werden. Dieses Kapitel beschreibt wie Sie eigene Panels für das Login-Framework verwenden.

Config-Eintrag Beschreibung
loginPanelLocal Panel für die lokale Authentifizierung.
loginPanelServer Panel für die serverseitige Authentifizierung für UI-Manager.

  • Um ein kundenspezifisches Panel zu verwenden, fügen Sie eine Klasse zu dem Login-Framework hinzu WinCC_OA_Proj/scripts/libs/classes/loginFramework. Die Klasse implementiert die LoginFrameworkChild-Ansicht LoginFrameworkChildView. Fügen Sie die Klasse basierend auf den zwei Beispielen WinCC_OA_Proj/scripts/libs/classes/loginFramework/LoginFrameworkLoginServer.ctl und LoginFrameworkLoginStd.ctl und basierend auf den Klassen LoginFrameworkChildView und loginFrameworkController.

  • Implementieren Sie alle Funktionen Ihrer Klasse, welche die LoginFrameworkChildView-Klasse implementiert. Wenn die Funktionen der Klasse nicht implementiert sind, wird keine Aktion ausgeführt, wenn eine spezifische Funktion aufgerufen wird.

  • Das kundenspezifische Panel muss zumindest folgende Punkte implementieren

  • Einen shared_ptr auf den loginFrameworkController als panelglobale Variable setzen:

#uses "classes/loginFramework/LoginFrameworkLoginStd"

shared_ptr<OaAuthUI> m_ui;

shared_ptr<LoginFrameworkController> m_loginFrameworkController = LoginFrameworkController::getInstance();

  • Einen shared_ptr auf die zuvor erstellte Klasse instanzieren - siehe unterhalb.
  • Diesen shared_ptr dem Controller-Objekt übergeben - siehe unterhalb.
  • Wenn Systembenutzungsbenachrichtigungen unterstützt werden sollen, muss zusätzlich noch das OaAuthUI- Objekt dem Controller übergeben werden:

m_ui = new OaAuthUI();

shared_ptr<LoginFrameworkChildView> view = new LoginFrameworkLoginStd(self, "txt_username", "txt_password", "txt_domain", "chkBx_userLang", "chkBx_monitor");

m_loginFrameworkController.setLoginFrameworkChildView(view);

m_loginFrameworkController.setOaAuthUI(m_ui); /* if there is a system use notification after the login we need to handle the starting of the UI from the Controller setFrameworkView(); */