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 1 von 2  1 2      
Illuminator-23-5
(Gast)

n/a Beiträge
 
#1

benutzername und passwort überprüfen

  Alt 10. Nov 2003, 17:32
wie kann man das passwort zu einem benutzernamen überprüfen? sprich ich habe den benutzernamen und ein passwort und will rausfinden, ob das Passwort stimmt
wie geht das? (ohne logonUser, das geht bei mir wegen der rechte nicht...)
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: benutzername und passwort überprüfen

  Alt 10. Nov 2003, 17:34
Wo speicherst du denn das Passwort, oder wie?
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#3

Re: benutzername und passwort überprüfen

  Alt 10. Nov 2003, 17:43
das Passwort wird in einem edit eingegeben, ebenso wie der Benutzername
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: benutzername und passwort überprüfen

  Alt 10. Nov 2003, 18:16
Hi Illu,


wo und wie speicherst du die Datei ab?
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#5

Re: benutzername und passwort überprüfen

  Alt 10. Nov 2003, 18:22
ok, verständnisschwierigkeiten:
ich brauch das für ein netzwerk
ich hab so einen kleinen "explorer" gefunden, den möcht ich dann unter einem anderen User starten, um auf dessen Dateien zugreifen zu können.
Dazu muss ich aber den Benutzernamen und das Passwort einlesen und überprüfen!
  Mit Zitat antworten Zitat
mr2

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

Re: benutzername und passwort überprüfen

  Alt 10. Nov 2003, 18:37
Hallo,

versuchs mal so:
Delphi-Quellcode:

// Beispielaufruf
var
  Res: THandle;
  bValid: Boolean;
begin
  Res := Logon('Knut', '.', 'geheim', LOGON32_LOGON_INTERACTIVE);
  bValid := (Res <> INVALID_HANDLE_VALUE);
  if bValid then begin
    CloseHandle(Res); // Handle unbedingt wieder schließen!!
    ShowMessage('Logon erfolgreich');
  else ShowMessage('Logon fehlgeschlagen');
end;

// notwendige Methoden, Konstanten, Typen
uses
  Windows;

type
  TLogonRec = record
    U, D, P : PChar;
    Flag : Cardinal;
    Token : THandle;
  end;

  PrivFun = function(var UserData) : bool;

const
  SE_CHANGE_NOTIFY_NAME = 'SeChangeNotifyPrivilege';

procedure PrivilegedExec(const Prv: string; Fun: PrivFun; var UserData);
var
  Acc : THandle;
  NT : TTokenPrivileges;
  OT : ^TTokenPrivileges;
  i : Cardinal;
begin
  if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, Acc)
  then begin
    // working on NT
    NT.PrivilegeCount := 1;
    NT.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
    LookupPrivilegeValue(nil, PChar(Pointer(Prv)), NT.Privileges[0].Luid);
    OT := nil;
    AdjustTokenPrivileges(Acc, false, NT, 0, OT^, i);
    try
      if not Fun(UserData)
      then RaiseLastOSError;
    finally
      AdjustTokenPrivileges(Acc, true, NT, 0, OT^, i);
    end;
  end else begin
    // working on W95/98
    if not Fun(UserData)
    then RaiseLastOSError;
  end;
end;

function _Logon2(var Data) : Bool;
begin
  with TLogonRec(Data) do
  Result := LogonUser(U, D, P, Flag, LOGON32_PROVIDER_DEFAULT, Token);
end;

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 := 0;
  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
Illuminator-23-5
(Gast)

n/a Beiträge
 
#7

Re: benutzername und passwort überprüfen

  Alt 10. Nov 2003, 18:42
sieht gut aus, aber ich bekomme immer 'logon erfolgreich', auch wenn ich das falsche Passwort eingebe!
  Mit Zitat antworten Zitat
mr2

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

Re: benutzername und passwort überprüfen

  Alt 10. Nov 2003, 18:58
Hallo,

Domain und Passwort waren vertauscht:
  Res := Logon(UserNm.Text, '.', PassWd.Text, LOGON32_LOGON_INTERACTIVE); 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
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: benutzername und passwort überprüfen

  Alt 10. Nov 2003, 19:17
Zitat von Matze:
Wo speicherst du denn das Passwort, oder wie?
Zitat von Spider:
wo und wie speicherst du die Datei ab?
irgendwie das selbe.
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#10

Re: benutzername und passwort überprüfen

  Alt 12. Nov 2003, 13:33
wenn das Passwort stimmt, passts,
doch wenn es nicht stimmt
exception "...Anmeldung fehlgeschagen: unbekannter Benutzername oder falsches Kennwort..."
und zwar hier:
Delphi-Quellcode:
//Prozedur: PrivilegedExec
    try
      if not Fun(UserData)
      then RaiseLastOSError; //<-- Hier
    finally
      AdjustTokenPrivileges(Acc, true, NT, 0, OT^, i);
    end;
trotz des try-blocks bekomm ich die exception! Warum?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:49 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