AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Windows Benutzerverwaltung mitverwenden
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Benutzerverwaltung mitverwenden

Ein Thema von ralfiii · begonnen am 27. Jan 2011 · letzter Beitrag vom 7. Jun 2019
Antwort Antwort
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
490 Beiträge
 
Delphi 2010 Professional
 
#1

AW: Windows Benutzerverwaltung mitverwenden

  Alt 10. Feb 2011, 08:51
http://de.wikipedia.org/wiki/Security_Identifier Da steht alles.

Eventuell hilft ja diese Unit: http://www.michael-puff.de/Programmi...tePassword.pas
Damit kannst du überprüfen, ob der Benutzer im System existiert und ob er ein korrektes Passwort eingegeben hat.
Das ist eine recht lange Unit und ich kann eigentlich keinen Vorteil gegenüber der sehr simplen Lösung
Delphi-Quellcode:
// Check if a username/password exists on a system
// if parameter domain is left blank test is performed on the current domain
function CheckUserAccount(Username, Password, Domain : string) : boolean;
var token: THandle;
begin
     LogonUser(PChar(Username), PChar(Domain), PChar(Password),
                    LOGON32_LOGON_INTERACTIVE,LOGON32_PROVIDER_DEFAULT,token);
     CloseHandle(token);
     result:=token<>0;
end;
finden. Danke dennoch!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.588 Beiträge
 
Delphi 12 Athens
 
#2

AW: Windows Benutzerverwaltung mitverwenden

  Alt 10. Feb 2011, 09:46
Ich dachte LogonUser hat auch noch ein Result, welches man prüfen könnte.
Im MSDN steht nicht drin, daß Token auch im Fehlerfall immer auf 0 gesetzt wird.

Delphi-Quellcode:
function CheckUserAccount(Username, Password, Domain : string) : boolean;
var token: THandle;
begin
  if LogonUser(PChar(Username), PChar(Domain), PChar(Password),
    LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, Token) then
  begin
    CloseHandle(Token);
    Result := Token <> 0;
  end else
    Result := False;
end;
Delphi-Quellcode:
function CheckUserAccount(Username, Password, Domain : string) : boolean;
var token: THandle;
begin
  Result := LogonUser(PChar(Username), PChar(Domain), PChar(Password),
    LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, Token) and (Token <> 0);
  if Result then
    CloseHandle(Token);
end;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#3

AW: Windows Benutzerverwaltung mitverwenden

  Alt 10. Feb 2011, 18:04
Vielleicht sollte ich auch noch schnell auf MSDN-Library durchsuchenSecureZeroMemory verweisen, wenn das Paßwort schon im Speicher der Anwendung gehalten wird ...
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
490 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Windows Benutzerverwaltung mitverwenden

  Alt 7. Jun 2019, 12:16
Ich belebe mal den uralten Thread.
Bin drüber gestolpert, dass LogonUser mit LOGON32_LOGON_NETWORK richtig arbeitet wenn der Benutzername richtig geschrieben wurde.
Wenn's den Nutzer aber nicht gibt, dann liefert LogonUser IMMER true.
Nutzt man LOGON32_LOGON_INTERACTIVE dann funktionieren alle Fälle richtig.

Ich hab die MS-Docu durchgelesen, kapier' aber nicht warum das so ein muss.

Ich stell's mal einfach um in der Hoffnung dass mir nicht andere Siedeffects das Genick brechen.

Jemand eine Idee?
  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 04: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