Hallo,
okay, der User will sein Passwort wechseln, warum auch immer. Sollte man so etwas immer über ein Extraformular ändern? Wenn ja, muss die aktuelle Usertabelle dafür extra Felder haben? Aktuell sieht meine Usertabelle so aus:
ID |
Vorname |
Nachname |
UserID |
Passwort |
BenutzerArtID_F |
Das Loginformular funktioniert aktuell lediglich mit User/Passwort nach folgender Prozedur:
Private Sub cmdLogin_Click()
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("tblBenutzer", dbOpenSnapshot, dbReadOnly)
rs.FindFirst "UserID='" & Me.txtBenutzername & "'"
If rs.NoMatch = True Then
Me.lblFalscherBenutzer.Visible = True
Me.txtBenutzername.SetFocus
Exit Sub
End If
Me.lblFalscherBenutzer.Visible = False
If rs!Passwort <> Encrypt(Me.txtPasswort) Then
Me.lblFalschesPasswort.Visible = True
Me.txtPasswort.SetFocus
Exit Sub
End If
Me.lblFalschesPasswort.Visible = False
If rs!BenutzerArtID_F = 1 Then
Dim prop As Property
On Error GoTo SetProperty
Set prop = CurrentDb.CreateProperty("AllowBypassKey", dbBoolean, False)
CurrentDb.Properties.Append prop
SetProperty:
If MsgBox("Willst du wirklich den Bypass-Key aktivieren?", vbYesNo, "Allow Bypass") = vbYes Then
CurrentDb.Properties("AllowBypassKey") = True
Else
CurrentDb.Properties("AllowBypassKey") = False
End If
End If
DoCmd.OpenForm "frmMenueseite"
DoCmd.Close acForm, "frmLogin"
End Sub
Was ist die Methode, welche am meisten Sinn macht? Danke für eure Hilfe.
Gruß Andreas
Du kannst aber Fragen stellen.
Einfach logisch überlegen, dann ergeben sich die Antworten von selbst.
Ob die Tabelle extra Felder braucht?
Was willst du denn zusätzlich speichern?
Beantworte die Frage und dann weißt du ob sie zusätzlich Felder braucht.
Brauchst du ein eigenes Formular?
Komisch, ich kann das Formular gar nicht sehen, wie soll man da einen Rat geben? Was braucht das Form zusätzlich um einen Wechsel durchzuführen?
Button zum Starten des Passwortwechsels und Felder für die Eingabe.
Natürlich braucht man kein eigenes Form - ist aber nicht verboten - , aber die Funktionalität muss halt ergänzt werden.
LG Markus
Hallo,
ich würde vorschlagen, auf das Login-Formular einen Button hinzuzufügen und daraufhin ein Formular für den Passwortwechsel im Dialogmodus zu öffnen.
Folgende Felder sollten darauf enthalten sein:
- User-ID
- altes Passwort
- neues Passwort
- Wiederholung neues Passwort
sowie zwei Buttons zum Abbrechen und Speichern (jeweils inkl. Schließen).
Geändert wird nur, wenn das alte Passwort korrekt ist und die beiden neuen übereinstimmen.
Die Änderung könnte mit einer Aktualisierungsabfrage vorgenommen werden.
Hi MaggieMay,
okay, das hört sich bezüglich des Ablaufes am sinnigsten an. Vielleicht sollte ich noch folgendes erwähnen. Aktuell hashe ich die Passwörter noch "manuell". Sprich, wenn ich einen User mit Passwort anlege, dann mache ich im VBA Editor im Direktbereich noch
?encrypt("passwort")
Wenn ich den von dir propagierten Weg anstreben muss, dann muss ich doch diesen Schritt auch irgendwie automatisieren, oder belässt man es einfach dabei, dass die Passwörter als ******* in Access dargestellt werden und hashing nicht von Nöten ist?
Gruß Andreas
Sorry, aber "Encrypt" ist eine mir unbekannte Funktion, die du offensichtlich irgendwo gefunden hast, daher habe ich das Detail zunächst ignoriert. Ehrlich gesagt sehe ich auch keine Notwendigkeit, das Passwort zu verschlüsseln. Du verteilst doch deine DB an einzelne, voneinander unabhängige Anwender, oder?
Hi,
ja, nur an Einzelne Personen. Ich habe diese Funktion wieder entfernt und die Feldfunktion in seiner Eigenschaft auf Kennwort wieder umgestellt.
Gruß Andreas