Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Lokal am Computer angemeldet, oder an Domäne? (https://www.delphipraxis.net/121401-lokal-am-computer-angemeldet-oder-domaene.html)

Guido Eisenbeis 26. Sep 2008 19:30


Lokal am Computer angemeldet, oder an Domäne?
 
Hallo.

Nachdem ich nun das halbe Internet runtergeladen und gelesen habe, ist zwar mein Wissen, aber auch mein Kopf angeschwollen, von der Komplexität des Themas.

Grundsätzlich geht es um Benutzerrechte, bezogen auf die Anmeldung als Admin, Standardnutzer oder eingeschränkter Nutzer. Das Ganze dann noch sowohl lokal am PC, als auch in einer Domäne.

Ich habe mich nun recht intensiv mit diesen Dingen beschäftigt und bin nun an einem Punkt, wo ich eure Hilfe brauche. (Weil ich sonst noch durchdrehe.) :cyclops:

Mein Problem: Wie kann ich ermitteln, ob ein Programm im Kontext eines lokalen Benutzers oder eines Domänennutzers läuft?

Hintergrund ist eine RunAsAdmin-Applikation, bei der ich am Anfang die Daten eines Benutzers auslese. Diese Daten sind der User-Name und die "Domain". Bei der Domain kann es dann eine echte Netzwerkdomäne sein, oder es wird der Computername ausgelesen. Es gibt nun zwei RadioButtons: einen für "Local" und einen für "Domain". Nun würde ich gerne den richtigen RadioButton vorbelegen.

Dazu müsste ich aber wissen, ob der ermittelte User lokal oder an einer Domäne angemeldet ist. Da es nun einen Benutzer(-Namen) sowohl lokal als auch in der Domäne geben kann (z. B. "Administrator") ist das schon mal eine Hürde. Die weitaus größere Hürde ist jedoch, dass ein Computername genauso lauten kann, wie ein Domänenname (oder?).

Wie kann ich also zuverlässig ermitteln, ob z. B. gerade der lokale oder der Domänen-Administrator mein Programm ausführt?

Guido.

Edit: Schreibfehler korrigiert.

Luckie 26. Sep 2008 21:20

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Guck, ob der Logon Server der lokale Computer ist oder der Domainserver. Siehe dazu mein Programm LoggedOn: http://www.michael-puff.de/Artikel/LoggedOn.shtml

Guido Eisenbeis 27. Sep 2008 13:45

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Hallo Michael,

ich hatte schon auf eine Antwort von dir gehofft, da in ich-weiß-nicht-wieviel-Prozent aller Themen, Tipps und Codes dein Name aufgetaucht ist. (Unter anderem auch "Impersonate" und "RunAsUser", das allerdings nur noch erwähnt, aber nirgends als Code zu finden ist. Weder auf deiner Seite, noch über Download-Links.)

Deinen Code von LoggedOn habe ich mir kurz angesehen. Der Code ist recht umfangreich. Vielleicht kannst du mir ein wenig Sucherei ersparen und mir die relevanten Stellen nennen, die es ermöglichen zu ermitteln, ob der Nutzer lokal oder an einer Domäne angemeldet ist. Bei LoggedOn scheint es umgekehrt zu sein: Dort muss man erst angeben, ob am lokalen PC oder in einer Domäne gescannt werden soll. Das hilft mir leider nicht weiter. Vielleicht kannst du da ein wenig Licht in die Sache bringen. :)

Guido.

Union 27. Sep 2008 15:11

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Sehr einfach gehts mit:
Delphi-Quellcode:
GetEnvironmentVariable('USERDNSDOMAIN');
Ist das Ergebis leer, dann handelt es sich um eine lokale Anmeldung.

Guido Eisenbeis 27. Sep 2008 17:44

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Hallo Union,

was ich nicht zu hoffen wagte, ist nun eingetreten: Eine einfache Lösung, die auch zu funktionieren scheint! :hello:

Weißt du auf welche Win-Versionen das beschränkt ist, oder wo ich das erfahren kann? Ausreichen würde es, wenn es funktioniert ab Win2000 und später, also: Win2000 Prof, WinXP Home, Prof, Vista (evtl. alle), und Win200x Server (Hab ich eine vergessen? :gruebel: ).

Ansonsten vielen Dank! Geniale Lösung!

Guido.




____________________________________________
Wo der Gewinn am höchsten, da ist das Recht.
(Leider nur zu wahr!)

Luckie 27. Sep 2008 22:35

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Zitat:

Zitat von Guido Eisenbeis
Hallo Michael,

ich hatte schon auf eine Antwort von dir gehofft, da in ich-weiß-nicht-wieviel-Prozent aller Themen, Tipps und Codes dein Name aufgetaucht ist. (Unter anderem auch "Impersonate" und "RunAsUser", das allerdings nur noch erwähnt, aber nirgends als Code zu finden ist. Weder auf deiner Seite, noch über Download-Links.)

Das hat nichts zu sagen, ich weiß auch viles nicht und das ist bisher noch wesentlich mehr, als dass ich weiß. ;) Und Beides, den Artikel und das Demo zu Impersonate gibt es noch auf meiner Homepage und auch RunAsUser:
Impersinate Artikel und Demo: http://www.michael-puff.de/Artikel/Impersonate.shtml
RunAsUser: http://www.michael-puff.de/Developer/Delphi/Programme/
Es überkommt mich eben nur manchmal und dann baue ich meiner Seite um.

Zitat:

Deinen Code von LoggedOn habe ich mir kurz angesehen. Der Code ist recht umfangreich.
Länger angucken. ;) Ist eigentlich alles hübsch in Klassen verpackt. Die entscheidende Funktion ist MSDN-Library durchsuchenNetWkstaUserEnum*. Auf die Umgebungsvariable würde ich mich nicht unbedingt verlassen. EWahrscheinlich gewinnt man eher im Lotto, als dass sie nicht vorhanden ist, aber man weiß ja nie.

*) Warum wird die Funktion jetzt nicht gefunden? :roll: Hat wahrscheinlich hiermit zu tun: http://www.delphipraxis.net/viewtopi...=946815#946815

Guido Eisenbeis 27. Sep 2008 23:14

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Zitat:

Zitat von Luckie
Länger angucken. ;) Ist eigentlich alles hübsch in Klassen verpackt. Die entscheidende Funktion ist MSDN-Library durchsuchenNetWkstaUserEnum*.

Habs mir länger angeguckt. :wink: Leider kann ich nicht die Antwort auf meine Frage finden. So wie ich das verstanden habe, braucht auch NetWkstaUserEnum die Angabe des Server(-Namens), um dann die User aufzulisten.

Ich brauche aber das "Gegenteil": "Domäne"*, UserName und Passwort habe ich. Ich will nun wissen, ob die "Domäne" eine Netzwerk-Domäne ist oder ein lokaler Wert*.

* "Domäne" enthält entweder den Namen der Netzwerk-Domäne oder den Namen des Computers / der Arbeitsgruppe.

Guido.

Luckie 27. Sep 2008 23:17

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Ich gebe auch nur die Domain an in meinem Programm.

Guido Eisenbeis 27. Sep 2008 23:21

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Zitat:

Zitat von Luckie
Ich gebe auch nur die Domain an in meinem Programm.

Wie hilft mir das?

RWarnecke 27. Sep 2008 23:25

Re: Lokal am Computer angemeldet, oder an Domäne?
 
Der Befehl NetServerGetInfo sollte Dir weiterhelfen. Damit kannst Du die Arbeitsgruppe oder die Domain ermitteln.

Edit: Die Klasse TLoggedOnUser ist für Dein vorhaben genau die richtige von Michaels Programm LoggedOn Programm.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:41 Uhr.
Seite 1 von 3  1 23      

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