AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Windows Login in eigener Applikation aufrufen
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Login in eigener Applikation aufrufen

Ein Thema von KNDelphi · begonnen am 12. Jul 2012 · letzter Beitrag vom 13. Jul 2012
Antwort Antwort
Seite 1 von 2  1 2      
KNDelphi

Registriert seit: 29. Mai 2012
17 Beiträge
 
#1

Windows Login in eigener Applikation aufrufen

  Alt 12. Jul 2012, 14:54
Hey zusammen,

kenn jemand von euch eine Möglichkeit bzw. gibt es eine um den Windows-Login aufzurufen innerhalb meines Programms?

Folgendes: Ich möchte, dass sich ein Benutzer innerhalb meines Programms anmelden muss. Er soll ganz normal seinen Benutzername mit Passwort und die Domaine angeben.

Mir ist klar, dass ich das selbst implementieren könnte und mit LogonUser oder SSPI überprüfen kann, aber ich möchte, dass das Passwort nicht auszulesen ist. Mich interessiert lediglich der Benutzername und ob dieser ein gültiger Benutzer ist bzw. dieser sich mit den angegeben Daten im System einloggen kann.

Ich hoffe ihr versteht worauf ich hinaus will

//Edit: Es soll nicht das Login des aktuell angemeldeten Users verwendet werden, da dies ein Gruppenlogin ist

Greetz KNDelphi

Geändert von KNDelphi (12. Jul 2012 um 15:00 Uhr) Grund: Edit
  Mit Zitat antworten Zitat
tgvoelker

Registriert seit: 9. Sep 2002
Ort: Oelsnitz, Vogtland
43 Beiträge
 
Delphi 12 Athens
 
#2

AW: Windows Login in eigener Applikation aufrufen

  Alt 12. Jul 2012, 15:23
Ja.

http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

Mit CreateProcessWithLogonW authentifizierst Du am lokalen Rechner.

Wenn Du an einem Netzwerkrechner authentifizieren willst, dann kannst Du WNetAddConnection2 verwenden: http://msdn.microsoft.com/en-us/libr...3%28v=vs.85%29

Allerdings ist dann zu beachten, daß Du Dich nicht zweimal zum selben Netzwerkserver mit unterschiedlichen Anmeldenamen verbinden kannst (innerhalb einer Benutzersitzung). Wenn Du unterschiedliche Adressen nehmen kannst (IP-Adresse, Netbios-Name, FQDN), dann geht das trotzdem.
Thomas Völker

Geändert von tgvoelker (12. Jul 2012 um 15:25 Uhr)
  Mit Zitat antworten Zitat
KNDelphi

Registriert seit: 29. Mai 2012
17 Beiträge
 
#3

AW: Windows Login in eigener Applikation aufrufen

  Alt 12. Jul 2012, 16:16
Danke für die schnelle Antwort

Versteh ich das richtig: Diese funktionen erwarten doch auch das Passwort als Parameter, d.h. ich muss es ja vorher abfragen?! Das ist ja genau das was ich nicht möchte...


KNDelphi
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Windows Login in eigener Applikation aufrufen

  Alt 12. Jul 2012, 16:31
Versteh ich das richtig: Diese funktionen erwarten doch auch das Passwort als Parameter, d.h. ich muss es ja vorher abfragen?! Das ist ja genau das was ich nicht möchte...
Folgendes: Ich möchte, dass sich ein Benutzer innerhalb meines Programms anmelden muss. Er soll ganz normal seinen Benutzername mit Passwort und die Domaine angeben.
Ja was den nun? Muss er es angeben oder nicht???
Irgendwie ist glaub ich doch nicht so ganz klar, was du willst.
Ralph
  Mit Zitat antworten Zitat
KNDelphi

Registriert seit: 29. Mai 2012
17 Beiträge
 
#5

AW: Windows Login in eigener Applikation aufrufen

  Alt 12. Jul 2012, 16:37
Ja, natürlich muss er sein Passwort angeben, ohne geht es schlecht

Ich möchte quasi eine Funktion die das ein Fenster öffnet in dem man Benutzername, Passwort und Domain eingibt (wie z.B. wenn man neue Hardware einsteckt, aber keine Rechte hat diese zu installieren -->http://kay-bruns.de/wp/wp-content/up...3/iathook0.png so etwas)
Und diese Funktion soll mir dann nur sagen ob der Login erfoglreich war und wenn ja, wie dieser Benutzer heisst.

Es geht darum dass der PC über ein Gruppenlogin startet, ich aber in meinem Programm wissen möchte wer in einem bestimmten Fenster etwas gemacht hat. Dazu soll einfach ein gültiges Login eingegeben und überprüft werden...

Nochmal: Es soll nirgends im Code möglich sein das Passwort auszulesen!

Ich hoffe jetzt ist es etwas deutlicher geworden

KNDelphi
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Windows Login in eigener Applikation aufrufen

  Alt 12. Jul 2012, 16:44
Danke für die schnelle Antwort

Versteh ich das richtig: Diese funktionen erwarten doch auch das Passwort als Parameter, d.h. ich muss es ja vorher abfragen?! Das ist ja genau das was ich nicht möchte...


KNDelphi
Dann besorg Dir eine Liste der gültigen Benutzer/Domänen und mach den etsprechenden Abgleich.
Oder geh gleich über LDAP.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Windows Login in eigener Applikation aufrufen

  Alt 12. Jul 2012, 17:23
Hier mal sowas, dass mir erst vor kurzem hier gezeigt wurde, Domäne ist immer fix, d.h. muss/kann bei mir nicht angegeben werden:

Delphi-Quellcode:
//User ist eine globale Variable in der Klasse, in der ich den Usernamen speichere.

procedure TMain.acErweitertExecute(Sender: TObject);
var u,p:String;
begin
  u:=User;
  p:='';
  if RemoteLoginDialog(u,p) then
    begin
    if CheckUserAccount(u,p,'UnsreDomäne') then
      begin
      User:=u
    else
      showmessage('Falscher Benutzername oder falsches Passwort!');
    end;
end;

function TMain.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;
Ralph
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#8

AW: Windows Login in eigener Applikation aufrufen

  Alt 12. Jul 2012, 17:31
Und diese Funktion soll mir dann nur sagen ob der Login erfoglreich war und wenn ja, wie dieser Benutzer heisst.
Login erfolgreich = User kann Progamm in seinen Konto starten - sonst wäre er ja nicht am PC angemeldet.
Wie der User heißt = GetUserName
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai
Online

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#9

AW: Windows Login in eigener Applikation aufrufen

  Alt 12. Jul 2012, 23:59
Wie wär's mit ShellExecuteEx mit dem Verb 'runas' (UAC ab Vista) bzw. 'runasuser' (ab Vista nötig, um den von XP gewohnten 'Ausführen als'-Dialog aufzurufen)? Ich hatte so ein ähnliches Problem vor ein paar Monaten und hab das in diesem Thread diskutiert.

MfG Dalai
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#10

AW: Windows Login in eigener Applikation aufrufen

  Alt 13. Jul 2012, 05:54
Ich glaub, er will 'einfach nur' eine Funktion, wie z.B.

Delphi-Quellcode:
If ShowLoginDialogAndAskForUserNameAndPasswordAndReturnTheUserName(userName) then begin
  ShowMessage('You are '+userName);
  If IsAllowedToDoWhatever (userName) then
    DoWhatever();
end;
Und die Funktion mit dem ziemlich langen Namen soll eben halt nicht war von Windows direkt kommen weil man ja das Passwort nirgens im Code auslesen können soll.

Das soll dann wohl obersichermäßig sein.

  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 12:37 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