Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Login - Passwort ändern. Extra Changeformular erstellen?

Begonnen von derilzemer, Juni 02, 2016, 22:19:32

⏪ vorheriges - nächstes ⏩

derilzemer

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
Grüße und Dank im voraus
Andreas

markusxy

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


MaggieMay

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.
Freundliche Grüße
MaggieMay

derilzemer

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

Grüße und Dank im voraus
Andreas

MaggieMay

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?
Freundliche Grüße
MaggieMay

derilzemer

Hi,
ja, nur an Einzelne Personen. Ich habe diese Funktion wieder entfernt und die Feldfunktion in seiner Eigenschaft auf Kennwort wieder umgestellt.
Gruß Andreas
Grüße und Dank im voraus
Andreas