Gemeinsam zu mehr Effizienz in der Anwendungserstellung
K (→Beispiel) |
K (→Login-Steuerung) |
||
Zeile 94: | Zeile 94: | ||
Dieses Beispiel ist eine Weiterentwicklung eines Beispiels aus einer [http://ms-office-forum.net/forum/showthread.php?t=264252 Diskussion im MS-Office-Forum]. | Dieses Beispiel ist eine Weiterentwicklung eines Beispiels aus einer [http://ms-office-forum.net/forum/showthread.php?t=264252 Diskussion im MS-Office-Forum]. | ||
- | Im Modul <code>modApplication</code> kann zwischen zwei Varianten zur Passwort-Prüfung ausgewählt werden | + | Im Modul <code>modApplication</code> kann zwischen zwei Varianten zur Passwort-Prüfung ausgewählt werden: |
* Prüfung des Windows-Passworts | * Prüfung des Windows-Passworts | ||
* Prüfung über eine Tabelle mit einem md5-verschlüsselten Passwort (Test-Account: Name = Tester, Passwort = xxx) | * Prüfung über eine Tabelle mit einem md5-verschlüsselten Passwort (Test-Account: Name = Tester, Passwort = xxx) | ||
{{Hierarchy footer}} | {{Hierarchy footer}} |
Programmier-Konzepte |
|
Der unten angeführte Code zeigt nur ein Prinzip und stellt keine fertige Lösung dar.
Inhaltsverzeichnis |
Code-Prinzip:
' Ereignis für Weitergabe des Login-Status Public Event LoginChanged(ByVal UserLoggedOn as Boolean, ByVal UserName as String) ' LoggedOn ... True = User ist angemeldet, Fals = User hat sich abgemeldet ' Login-Methode Public Function Login(ByVal NewUsername As String, ByVal Password As String) as Boolean ... Login prüfen usw. If LoginWarErfolgreich then RaiseEvent LoginChanged(True, NewUsername) End If ' Diese Prozedur wird später vom Login-Formular verwendet End Function Public Sub Logout() ... Intern aufräumen RaiseEvent LoginChanged(False, Me.Username) End Sub 'Hilfsprozedur um bei Bedarf den Anmeldestatus abzufragen: Public Property Get IsLoggedIn() as Boolean ... End Property ' .. und auch gleich noch den aktuell angemeldeten Usernamen: Public Property Get UserName() As String ... End Property
Da man von dieser Klasse vermutlich nur eine Instanz benötigt, könnte man diese Instanz über ein allgemeines Modul erstellen.
Private m_UserLogon As UserLogon Public Property Get CurrentUserLogon() As UserLogon If m_UserLogon Is Nothing then set m_UserLogon = New UserLogon End If Set CurrentUserLogon = m_UserLogon End Property
In einem Formular, das nur für eingeloggte User volle Funktionalität ermöglichen soll, wird die Klasse UserLogon folgendermaßen verwendet:
Private WithEvents m_CurrentUserLogon As UserLogon 'm_CurrentUserLogon einstellen: Private Sub Form_Load() Set m_CurrentUserLogon = CurrentUserLogon Call aktiviereSonderBereiche(m_CurrentUserLogon.IsLoggedIn) End Sub 'Auf Ereignis bei Anmeldungsänderung reagieren Private Sub m_CurrentUserLogon_LoginChanged(ByVal UserLoggedOn as Boolean, ByVal UserName as String) call aktiviereSonderBereiche(UserLoggedOn) End Sub 'Hilfsfunktion zum Einstellen der Steuerelemente: Private Sub aktiviereSonderBereiche(ByVal bAktivieren as Boolean) 'z. B.: Me.cmdDeleteRecordset.Enabled = bAktivieren ... End Sub
Download: LoginSteuerung.zip (64kB)
Dieses Beispiel ist eine Weiterentwicklung eines Beispiels aus einer Diskussion im MS-Office-Forum.
Im Modul modApplication
kann zwischen zwei Varianten zur Passwort-Prüfung ausgewählt werden:
Benutzerverwaltung und Login | Zugriffsschutz und Lizenzprüfung