Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Problem mit Benutzerverwaltung + Kennwort (https://www.delphipraxis.net/102938-problem-mit-benutzerverwaltung-kennwort.html)

f4k3 7. Nov 2007 10:25


Problem mit Benutzerverwaltung + Kennwort
 
Moin Moin liebe DP'ler,

hab folgendes Problem ...

Hab n Programm indem als Hauptform der Login steht.
Die Benutzer müssen Benutzername und Kennwort eingeben.
wenn sie dann auf das Image "Anmelden" gehen soll überprüft werden ob der Benutzer Admin ist, oder Benutzer und natürlich ob zu dem Benutzernamen
das eingegebene Kennwort gehört ...

Mein Code dafür sieht folgendermaßen aus ...

Delphi-Quellcode:
procedure TfLogin.iAnmeldenClick(Sender: TObject);
begin

        if TBenutzer.FieldByName('Benutzername').AsString = ('Admin') then
        begin

              if TBenutzer.FieldByName('Kennwort').AsString = eKennwort.Text then
              begin

                    ShowMessage('!! Erfolgreich als Admin angemeldet !!');

                    fLogin.Hide;
                    fAdmin.Show;

              end

         else

              if TBenutzer.FieldByName('Benutzername').AsString = eBenutzername.Text then
              begin

                    if TBenutzer.FieldByName('Kennwort').AsString = eKennwort.Text then
                    begin

                        ShowMessage('!! Erfolgreich als Benutzer angemeldet !!');

                    end;

              end;

        end;

end;
Meiner Logik nach prüft er zuerst ob der Benutzer Admin ist und ob dass kennwort dazu passt ... dann kommt ne ShowMessage ... er "versteckt" den Login-Screen und wechselt zum Admin Menü.

Dann überprüft er ob in den beiden edit Feldern indem die eingaben geschehen ... ob benutzername und kennwort übereinstimmen ...
es wird aber nicht ausgeschlossen ob der "Benutzer" Admin oder ein sonstiger Benutzer ist ... denn Benutzer kommen logischerweise in ein anderes Menü.

Was auch noch schön wär ... anstatt des Editfeldes ich eine DBCombobox hätte indem ich den Benutzernamen auswählen könnte ...
das klappt aber nicht, weil in meiner DBCombobox keine einträge stehen ... auch wenns ich die Datasource auf meine Table lege und das Datafield auf mein Benutzernamen ...


So ... ein weiteres Problem ist ... dass wenn ich mich aus dem Admin Menü, wieder zum login begeben möchte ... werden die edit Felder nicht gelöscht ...

Mein Code dafür sieht folgendermaßen aus ...

Delphi-Quellcode:
procedure TfLogin.FormCreate(Sender: TObject);
begin

      eBenutzername.Clear;
      eKennwort.Clear;

end;
Kanns sein dass er diesen Befehl nur beim Programmstart ausführt?!
Ich könnt des ganze natürlich umgehen ... dass wenn ich im Admin Menü bzw. Benutzer Menü ... das Image Abmelden klicke ... dass er mir den Code quasi dann ausführt ... dürfte ja kein problem sein ... möchte nur gern wissen obs noch ne andere möglichkeit gibt ;)

is n bissl länger geworden :P
ich hoff ihr blickt da durch ...

zum schluss noch 2 screens von meinem progi ...
Passwort Manager ... is bis etz nur grunddesign ^^

Login Screen
Admin Screen

Schon mal vielen Dank im Vorraus ;)

Euer f4k3

DeddyH 7. Nov 2007 10:29

Re: Problem mit Benutzerverwaltung + Kennwort
 
Wann ist der Benutzer denn Admin? Wenn er "Admin" heißt? Und mir fehlt irgendwie der Vergleich zwischen Benutzername und Eingabe in der ersten Zeile.

f4k3 7. Nov 2007 10:32

Re: Problem mit Benutzerverwaltung + Kennwort
 
es gibt bis jetzt nur einen Admin ...

und zwar derjenige der auch Admin heißt ...

ich erweiter das Programm später noch um Benutzerrechte ... aber bin noch im Anfangsstadium ... also kommt erst später ...

Dieser Admin hat praktisch die Möglichkeit benutzer anzulegen und zu löschen in der Ben.db
Texte zu ändern, die in die Hilfe kommen ...
und Updates durchzuführen ...

ist deine Frage damit beantwortet?

DeddyH 7. Nov 2007 10:35

Re: Problem mit Benutzerverwaltung + Kennwort
 
Delphi-Quellcode:
if TBenutzer.FieldByName('Benutzername').AsString = ('Admin') then
Versteh ich nicht. IMHO müsste es lauten
Delphi-Quellcode:
if eBenutzername.Text = 'Admin' then

f4k3 7. Nov 2007 10:39

Re: Problem mit Benutzerverwaltung + Kennwort
 
Delphi-Quellcode:

if eBenutzername.Text = 'Admin' then
is was dran :P ... aber hilft mir trotzdem nicht weiter ... wenn ich danach die andere überprüfung laufen lasse ...

weil ich bekomm nen true wert zurück wenn ...

Delphi-Quellcode:

else

              if TBenutzer.FieldByName('Benutzername').AsString = eBenutzername.Text then
              begin

                    if TBenutzer.FieldByName('Kennwort').AsString = eKennwort.Text then
                    begin

                        ShowMessage('!! Erfolgreich als Benutzer angemeldet !!');

                    end;

              end;

// oder mein fehler ... weil die "Admin" überprüfung läuft ja bereits im vorfeld ^^ ... mhm ... könnte evtl. schon des Problems lösung sein ;)

danke dir
        end;
diese überprüfung mach ... weil Admin + Kennwort ist true ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz