AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Bei Login auf Zugriffsverletzung reagieren ...
Thema durchsuchen
Ansicht
Themen-Optionen

Bei Login auf Zugriffsverletzung reagieren ...

Ein Thema von LOMBI · begonnen am 14. Feb 2007 · letzter Beitrag vom 15. Feb 2007
Antwort Antwort
LOMBI
(Gast)

n/a Beiträge
 
#1

Bei Login auf Zugriffsverletzung reagieren ...

  Alt 14. Feb 2007, 15:29
Hallo,

Delphi-Quellcode:
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 := '';
Problem:

Bei BtnAnmeldenClick und leeren Feldern EditBenutzer + EditKennwort kommt es zu einer Zugriffsverletzung. Wie läßt sich bitte diese Meldung vermeiden?

Delphi-Quellcode:
...
if (EditBenutzer.Text = '') Or (EditKennwort.Text = '') then
ShowMessage('Bitte anmelden');
Exit;
EditBenutzer.SetFocus;
Hab' bereits versucht, diesen Code einzuflicken, aber das funktionierte leider nicht.

Gruß
Lombi
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Bei Login auf Zugriffsverletzung reagieren ...

  Alt 14. Feb 2007, 15:42
Vielleicht so?

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;
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#3

Re: Bei Login auf Zugriffsverletzung reagieren ...

  Alt 14. Feb 2007, 17:07
Hallo halinchen,

danke für die Antwort. Deinen Vorschlag habe ich umgesetzt.
Die Meldung tritt leider immer noch auf!
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Bei Login auf Zugriffsverletzung reagieren ...

  Alt 14. Feb 2007, 17:10
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 )
bis ein der Fehler kommt.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Bei Login auf Zugriffsverletzung reagieren ...

  Alt 14. Feb 2007, 17:21
Hallo,

Delphi-Quellcode:
if (EditBenutzer.Text = '') or
   (EditKennwort.Text = '') then
begin
  ShowMessage('Bitte anmelden');
  EditBenutzer.SetFocus;
  Exit;
end;
Bei deinem Code fehlt überall ein

begin
end

Und er führt nur den 1. Befehl aus (auch bei "Benutzername falsch")

Heiko
Heiko
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#6

Re: Bei Login auf Zugriffsverletzung reagieren ...

  Alt 14. Feb 2007, 20:21
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;
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Bei Login auf Zugriffsverletzung reagieren ...

  Alt 15. Feb 2007, 07:58
Hallo,

dann musst du dass halt vor dem Hashbilden prüfen
und nicht sofort die Edit.Text an die Methode übergeben.


Heiko
Heiko
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Bei Login auf Zugriffsverletzung reagieren ...

  Alt 15. Feb 2007, 08:46
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
Angehängte Dateien
Dateityp: zip authdlg_896.zip (1,3 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 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