AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi benutzername und passwort überprüfen
Thema durchsuchen
Ansicht
Themen-Optionen

benutzername und passwort überprüfen

Ein Thema von Illuminator-23-5 · begonnen am 10. Nov 2003 · letzter Beitrag vom 15. Nov 2003
Antwort Antwort
Seite 2 von 2     12   
Illuminator-23-5
(Gast)

n/a Beiträge
 
#11

Re: benutzername und passwort überprüfen

  Alt 12. Nov 2003, 15:52
ich habs irgendwie geschafft, dass das programm nicht mehr abbricht, aber wie kann man die exception unterdrücken
  Mit Zitat antworten Zitat
mr2

Registriert seit: 3. Mai 2003
140 Beiträge
 
Delphi 2006 Enterprise
 
#12

Re: benutzername und passwort überprüfen

  Alt 12. Nov 2003, 19:09
Hallo,

Du solltest
Delphi-Quellcode:
try

except
// wird nur ausgeführt wenn ein Fehler auftritt
// Exception wird abgefangen (falls kein raise innerhalb des Blocks steht)
end
von
Delphi-Quellcode:
try

finally
// wird immer (d.h. bei normalem Ablauf & im Fehlerfall) ausgeführt
// aufgetretene Exceptions werden immer weitergereicht!!
end
unterscheiden.

So sollte es funtioniern:
Delphi-Quellcode:
// Beispielaufruf
var
  Res: THandle;
  bValid: Boolean;
begin
  try
    Res := Logon('Knut', '.', 'geheim', LOGON32_LOGON_INTERACTIVE);
  except
    Res := INVALID_HANDLE_VALUE;
  end;
  bValid := (Res <> INVALID_HANDLE_VALUE);
  if bValid then begin
    CloseHandle(Res); // Handle unbedingt wieder schließen!!
    ShowMessage('Logon erfolgreich');
  else ShowMessage('Logon fehlgeschlagen');
end;
"... we know, there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we don't know. But there are also unknown unknowns - the ones we don't know we don't know."
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

Re: benutzername und passwort überprüfen

  Alt 12. Nov 2003, 19:15
RaiseLastOSError ist keine Exception, lediglich eine Ausgabe des letzten Systemfehlers für diesen Prozess! Das war sein Fehler.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#14

Re: benutzername und passwort überprüfen

  Alt 13. Nov 2003, 16:20
nun hab ich das RaiseLastOSError weggelassen, doch nun bleibt das programm stecken!
  Mit Zitat antworten Zitat
mr2

Registriert seit: 3. Mai 2003
140 Beiträge
 
Delphi 2006 Enterprise
 
#15

Re: benutzername und passwort überprüfen

  Alt 13. Nov 2003, 18:32
Zitat:
RaiseLastOSError löst eine Exception für den letzten Fehler im Betriebssystem oder in der Systembibliothek aus.
Also bei mir funktioniert das zuletzt angegebene Beispiel (MIT RaiseLastOSError) einwandfrei.
Hast Du die Hinweise aus einem der Beiträge zuvor beachtet?
Zitat:
Eventuell muss dem ausführenden Benutzer noch ein Recht gewährt werden:

- secpol.msc ausführen
- Lokale Sicherheitsrichtlinien / Zuweisen von Benutzerrechten
- Erstellen eines Token-Objekts & Einsetzen als Teil des Betriebsystems für den "Passwort-Prüfer" aktivieren
- danach neu anmelden
"... we know, there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we don't know. But there are also unknown unknowns - the ones we don't know we don't know."
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#16

Re: benutzername und passwort überprüfen

  Alt 14. Nov 2003, 14:06
jup, das hab ich!
ich hab aber das Fun() auch weggelöscht, jetzt bleibt das Prog nicht mehr stecken!

deshalb hab ich mir nun folgende funktion gemacht:
Delphi-Quellcode:
function rightPwd(Name, Pwrd: string): boolean;
var
  Res: THandle;
  bValid: Boolean;
begin
  result := false;
  Res := Logon(Name, '.', Pwrd, LOGON32_LOGON_INTERACTIVE);
  bValid := (Res <> INVALID_HANDLE_VALUE);
  if bValid then begin
    CloseHandle(Res); // Handle unbedingt wieder schließen!!
    result := true;
  end;
end;
bekomm aber leider immer 'true' heraus, auch wenn das passwort nicht stimmt!
  Mit Zitat antworten Zitat
mr2

Registriert seit: 3. Mai 2003
140 Beiträge
 
Delphi 2006 Enterprise
 
#17

Re: benutzername und passwort überprüfen

  Alt 14. Nov 2003, 19:46
Hallo,

Dir ist aber schon bewußt, dass
Delphi-Quellcode:
  if not Fun(UserData)
  then RaiseLastOSError;
das Kernstück ist, oder?
Das muss unbedingt drinbleiben sonst ist der ganze Aufruf sinnlos!

ändere bitte mal die Funktion Logon wie folgt ab:
Delphi-Quellcode:
function Logon(const User, Domain, Passw: string; Flag: Integer): THandle;
var
  LR : TLogonRec;
begin
  LR.U := PChar(User);
  LR.D := PChar(Domain);
  LR.P := PChar(Passw);
  LR.Flag := Flag;
  LR.Token := INVALID_HANDLE_VALUE; // hier ändern !!!
  PrivilegedExec(SE_CHANGE_NOTIFY_NAME, _Logon2, LR);
  Result := LR.Token;
end;
"... we know, there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we don't know. But there are also unknown unknowns - the ones we don't know we don't know."
  Mit Zitat antworten Zitat
DaFox

Registriert seit: 31. Jul 2003
Ort: Kippenheim
90 Beiträge
 
#18

Re: benutzername und passwort überprüfen

  Alt 14. Nov 2003, 20:25
Hi,

http://support.microsoft.com:80/supp...NoWebContent=1

Gruß,
Markus
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#19

Re: benutzername und passwort überprüfen

  Alt 15. Nov 2003, 10:59
@mr2: mit der änderung klappts!
thx!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 13:20 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