![]() |
Bei Login auf Zugriffsverletzung reagieren ...
Hallo,
Delphi-Quellcode:
Problem:
procedure TFormStartseite.BtnAnmeldenClick(Sender: TObject);
... begin Ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'p.ini'); Key := Ini.ReadString('User', EditBenutzer.Text, ''); if (Key = MD5_Hash2String((HashForString(EditBenutzer.Text + EditKennwort.Text)))) AND (Key <> '') then begin ShowMessage ('Sie sind angemeldet!') end else ShowMessage ('Benutzername und/oder Kennwort falsch!'); EditBenutzer.SetFocus; EditBenutzer.Text := ''; EditKennwort.Text := ''; Bei BtnAnmeldenClick und leeren Feldern EditBenutzer + EditKennwort kommt es zu einer Zugriffsverletzung. Wie läßt sich bitte diese Meldung vermeiden?
Delphi-Quellcode:
Hab' bereits versucht, diesen Code einzuflicken, aber das funktionierte leider nicht.
...
if (EditBenutzer.Text = '') Or (EditKennwort.Text = '') then ShowMessage('Bitte anmelden'); Exit; EditBenutzer.SetFocus; Gruß Lombi |
Re: Bei Login auf Zugriffsverletzung reagieren ...
Vielleicht so?
Delphi-Quellcode:
try...except...end;
Delphi-Quellcode:
try
if (Key = MD5_Hash2String((HashForString(EditBenutzer.Text + EditKennwort.Text)))) AND (Key <> '') then begin ShowMessage ('Sie sind angemeldet!') end else ShowMessage ('Benutzername und/oder Kennwort falsch!'); EditBenutzer.SetFocus; EditBenutzer.Text := ''; EditKennwort.Text := ''; ... end; except //was tun bei Fehler? end; |
Re: Bei Login auf Zugriffsverletzung reagieren ...
Hallo halinchen,
danke für die Antwort. Deinen Vorschlag habe ich umgesetzt. Die Meldung tritt leider immer noch auf! |
Re: Bei Login auf Zugriffsverletzung reagieren ...
Du kannst mal das Programm Schritt-für-Schritt ausführen und sagen an welcher Stelle es hapert. (Kann sein das das try wo anders hin muss).
Am besten setzt du einen Breakpoint am Anfang der Prozedur und drückst dann F7 (oder wars F8 :oops: ) bis ein der Fehler kommt. |
Re: Bei Login auf Zugriffsverletzung reagieren ...
Hallo,
Delphi-Quellcode:
Bei deinem Code fehlt überall ein
if (EditBenutzer.Text = '') or
(EditKennwort.Text = '') then begin ShowMessage('Bitte anmelden'); EditBenutzer.SetFocus; Exit; end; begin end Und er führt nur den 1. Befehl aus (auch bei "Benutzername falsch") Heiko |
Re: Bei Login auf Zugriffsverletzung reagieren ...
Hallo halinchen/Heiko,
die Zugriffsverletzung bezieht sich auf die Verschlüsselung. Wenn die beiden Editfelder leer bleiben, kann weder Benutzer noch Kennwort in die .ini geschrieben werden.
Delphi-Quellcode:
...
try if (myKey = MD5_Hash2String((HashForString(EditBenutzer.Text + EditKennwort.Text)))) AND (myKey <> '') then begin ShowMessage ('Sie sind angemeldet!') end else begin ShowMessage ('Benutzername und/oder Kennwort falsch!'); EditBenutzer.SetFocus; EditBenutzer.Text := ''; EditKennwort.Text := ''; end; except if (EditBenutzer.Text = '') or (EditKennwort.Text = '') then begin ShowMessage('Bitte anmelden'); EditBenutzer.SetFocus; Exit end; end; |
Re: Bei Login auf Zugriffsverletzung reagieren ...
Hallo,
dann musst du dass halt vor dem Hashbilden prüfen und nicht sofort die Edit.Text an die Methode übergeben. Heiko |
Re: Bei Login auf Zugriffsverletzung reagieren ...
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen Lombi,
manchmal muss man aufpassen, in welcher Reihenfolge man die Dinge erledigt. Besser finde ich in deinem Fall, wenn man den Button gar nicht drücken kann, bevor man sinnvolle Eingaben gemacht hat. Freundliche Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz