<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.access-codelib.net/skins/common/feed.css?207"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://wiki.access-codelib.net/index.php?action=history&amp;feed=atom&amp;title=Konzept_f%C3%BCr_Login-Pr%C3%BCfung</id>
		<title>Konzept für Login-Prüfung - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.access-codelib.net/index.php?action=history&amp;feed=atom&amp;title=Konzept_f%C3%BCr_Login-Pr%C3%BCfung"/>
		<link rel="alternate" type="text/html" href="https://wiki.access-codelib.net/index.php?title=Konzept_f%C3%BCr_Login-Pr%C3%BCfung&amp;action=history"/>
		<updated>2026-05-18T08:52:43Z</updated>
		<subtitle>Versionsgeschichte für diese Seite in Access Code Library</subtitle>
		<generator>MediaWiki 1.15.1</generator>

	<entry>
		<id>https://wiki.access-codelib.net/index.php?title=Konzept_f%C3%BCr_Login-Pr%C3%BCfung&amp;diff=1240&amp;oldid=prev</id>
		<title>Josef Pötzl:&amp;#32;Die Seite wurde neu angelegt: „ {{Hierarchy header}} {{Info|text= Der unten angeführte Code zeigt nur ein Prinzip und stellt keine fertige Lösung dar. }} === Ausgangsbasis === * Mit einer Anm…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.access-codelib.net/index.php?title=Konzept_f%C3%BCr_Login-Pr%C3%BCfung&amp;diff=1240&amp;oldid=prev"/>
				<updated>2010-04-24T09:28:20Z</updated>
		
		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „ {{Hierarchy header}} {{Info|text= Der unten angeführte Code zeigt nur ein Prinzip und stellt keine fertige Lösung dar. }} === Ausgangsbasis === * Mit einer Anm…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
{{Hierarchy header}}&lt;br /&gt;
{{Info|text=&lt;br /&gt;
Der unten angeführte Code zeigt nur ein Prinzip und stellt keine fertige Lösung dar.&lt;br /&gt;
}}&lt;br /&gt;
=== Ausgangsbasis ===&lt;br /&gt;
* Mit einer Anmeldung werden bestimmte Bereiche der Anwendung freigeschalten&lt;br /&gt;
* Die Anwendung ist aber auch ohne Anmeldung bedienbar&lt;br /&gt;
* Sobald sich der Anwender anmeldet, sollen die &amp;quot;gesperrten&amp;quot; Bereiche darauf reagieren&lt;br /&gt;
&lt;br /&gt;
=== Eingesetzte Elemente ===&lt;br /&gt;
* Formular für Eingabe der Loginkennung&lt;br /&gt;
* Klasse für die Informationsweitergabe der Anmeldung&lt;br /&gt;
* Formular mit speziellen Bereichen, die nur angemeldeten Usern zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
=== Konzept ===&lt;br /&gt;
&lt;br /&gt;
==== Klasse ''UserLogon'' ====&lt;br /&gt;
* Ist die Verbindungsklasse zu den gesperrten Bereichen.&lt;br /&gt;
* Löst ein Ereignis aus, wenn sich der Login-Status ändert&lt;br /&gt;
&lt;br /&gt;
Code-Prinzip:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
' Ereignis für Weitergabe des Login-Status&lt;br /&gt;
Public Event LoginChanged(ByVal UserLoggedOn as Boolean, ByVal UserName as String)&lt;br /&gt;
' LoggedOn ... True = User ist angemeldet, Fals = User hat sich abgemeldet&lt;br /&gt;
&lt;br /&gt;
' Login-Methode&lt;br /&gt;
Public Function Login(ByVal NewUsername As String, ByVal Password As String) as Boolean&lt;br /&gt;
  ... Login prüfen usw.&lt;br /&gt;
  If LoginWarErfolgreich then&lt;br /&gt;
     RaiseEvent LoginChanged(True, NewUsername)&lt;br /&gt;
  End If&lt;br /&gt;
' Diese Prozedur wird später vom Login-Formular verwendet&lt;br /&gt;
End Function&lt;br /&gt;
&lt;br /&gt;
Public Sub Logout()&lt;br /&gt;
  ... Intern aufräumen&lt;br /&gt;
  RaiseEvent LoginChanged(False, Me.Username)&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
'Hilfsprozedur um bei Bedarf den Anmeldestatus abzufragen:&lt;br /&gt;
Public Property Get IsLoggedIn() as Boolean&lt;br /&gt;
   ...&lt;br /&gt;
End Property&lt;br /&gt;
&lt;br /&gt;
' .. und auch gleich noch den aktuell angemeldeten Usernamen:&lt;br /&gt;
Public Property Get UserName() As String&lt;br /&gt;
  ...&lt;br /&gt;
End Property&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hilfsmodul für Instanzierung ====&lt;br /&gt;
Da man von dieser Klasse vermutlich nur eine Instanz benötigt, könnte man diese Instanz über ein allgemeines Modul erstellen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Private m_UserLogon As UserLogon&lt;br /&gt;
Public Property Get CurrentUserLogon() As UserLogon&lt;br /&gt;
   If m_UserLogon Is Nothing then&lt;br /&gt;
      set m_UserLogon = New UserLogon&lt;br /&gt;
   End If&lt;br /&gt;
   Set CurrentUserLogon = m_UserLogon&lt;br /&gt;
End Property&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Verwendung in einem Formular  ====&lt;br /&gt;
In einem Formular, das nur für eingeloggte User volle Funktionalität ermöglichen soll, wird die Klasse ''UserLogon'' folgendermaßen verwendet:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Private WithEvents m_CurrentUserLogon As UserLogon&lt;br /&gt;
&lt;br /&gt;
'm_CurrentUserLogon einstellen:&lt;br /&gt;
Private Sub Form_Load()&lt;br /&gt;
   Set m_CurrentUserLogon = CurrentUserLogon&lt;br /&gt;
   Call aktiviereSonderBereiche(m_CurrentUserLogon.IsLoggedIn)&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
'Auf Ereignis bei Anmeldungsänderung reagieren&lt;br /&gt;
Private Sub m_CurrentUserLogon_LoginChanged(ByVal UserLoggedOn as Boolean, ByVal UserName as String)&lt;br /&gt;
   call aktiviereSonderBereiche(UserLoggedOn)&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
'Hilfsfunktion zum Einstellen der Steuerelemente:&lt;br /&gt;
Private Sub aktiviereSonderBereiche(ByVal bAktivieren as Boolean)&lt;br /&gt;
   'z. B.:&lt;br /&gt;
   Me.cmdDeleteRecordset.Enabled = bAktivieren &lt;br /&gt;
   ...&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hierarchy footer}}&lt;/div&gt;</summary>
		<author><name>Josef Pötzl</name></author>	</entry>

	</feed>