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
KNDelphi

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

AW: Windows Login in eigener Applikation aufrufen

  Alt 12. Jul 2012, 15: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
generic

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

AW: Windows Login in eigener Applikation aufrufen

  Alt 12. Jul 2012, 16: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

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

AW: Windows Login in eigener Applikation aufrufen

  Alt 12. Jul 2012, 22: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
 
#4

AW: Windows Login in eigener Applikation aufrufen

  Alt 13. Jul 2012, 04: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
KNDelphi

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

AW: Windows Login in eigener Applikation aufrufen

  Alt 13. Jul 2012, 06:49
Danke an alle, ich komm der Sache schon langsam näher

@Dalai
Wie sieht denn der Aufruf von ShellExecuteEx bzw. das ShellExecuteInfo aus?

Ich habe es jetzt mal mit dem normalen ShellExecute gemacht, das funktioniert soweit auch, allerdings kann ich hier den Benutzernamen nicht auslesen oder etwa doch?!

MfG

KNDelphi
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: Windows Login in eigener Applikation aufrufen

  Alt 13. Jul 2012, 07:11
Wenn Du zu Fuß
Code:
runas /user:[user]
durchführst, kannst du über set die Umgebungsvariablen anzeigen. Da findest Du z.B. USERNAME, USERDOMAIN usw.
Das müsste auch per WinAPI Code
Code:
GetEnvironmentVariable
gehen.
Gruß, Jo
  Mit Zitat antworten Zitat
KNDelphi

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

AW: Windows Login in eigener Applikation aufrufen

  Alt 13. Jul 2012, 08:18
Leider ist bis jetzt nicht wirklich das dabei was ich gesucht habe...
Ich befürchte, dass es soetwas gar nicht gibt

Trotzdem vielen Dank für eure Hilfe

MfG
KNDelphi
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

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

AW: Windows Login in eigener Applikation aufrufen

  Alt 13. Jul 2012, 15:01
@Dalai
Wie sieht denn der Aufruf von ShellExecuteEx bzw. das ShellExecuteInfo aus?
Ziemlich einfach:
Delphi-Quellcode:
function TMainForm.RunAs(const verb: string): Boolean;
var sei: TShellExecuteInfo;
begin
    FillChar(sei, SizeOf(sei), 0);
    sei.cbSize:= SizeOf(sei);
    sei.Wnd:= Self.Handle;
    sei.fMask:= SEE_MASK_FLAG_DDEWAIT (*OR SEE_MASK_FLAG_NO_UI OR SEE_MASK_NOCLOSEPROCESS*);
    sei.lpVerb:= PChar(verb);
    sei.lpFile:= PChar(Application.ExeName);
    sei.lpParameters:= PChar('runas ' + IntToStr(Self.Handle));
    sei.nShow:= SW_SHOWNORMAL;
    Result:= ShellExecuteEx(@sei);
end;
Als Verb kommt entweder 'runas' (bis einschließlich XP) oder 'runasuser' (ab Vista) rein.

Zitat:
allerdings kann ich hier den Benutzernamen nicht auslesen oder etwa doch?!
Den Benutzernamen kannst du mit ShellExecute(Ex) überhaupt nicht auslesen. ShellExecute(Ex) führt Programme aus. Das können andere Programme sein oder wie im Beispiel oben das eigene Programm oder auch (mit einem Programm verknüpfte) Dokumente/Dateitypen. Wenn man das Verb 'runas' oder 'runasuser' verwendet, so kann man die Ausführung mit einem anderen Nutzer erledigen lassen.

Aber ich denke, ich sehe jetzt, dass du in eine andere Richtung willst/musst, weshalb dir ShellExecuteEx nicht weiterhelfen dürfte.

MfG Dalai
  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 08:47 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