AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hat User Admin-Rechte?

Ein Thema von Motzi · begonnen am 9. Okt 2003 · letzter Beitrag vom 10. Okt 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#1

Hat User Admin-Rechte?

  Alt 9. Okt 2003, 12:59
Hi,

ich benutze momentan die Funktion von NicoDE mit der ich überprüfen kann, ob ein User über Admin-Rechte verfügt oder nicht. Diese Funktion basiert jedoch auf dem Process-Token des eigenen Processes
OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, TokenHandle) D.h. Vorraussetzung ist, dass mein Prozess im Kontext des angemeldeten Benutzers läuft dessen Rechte ich überprüfen will.

Mein Programm läuft jetzt jedoch als Service und damit im System-Kontext. Hat jetzt vielleicht wer eine spontane Idee, wie ich dennoch die Rechte des Users überprüfen kann? Meine erste Idee war per GetUserName den Namen des Users zu holen und mir dann per LookupAccountName/LookupAccountSid die SID des Users zu holen.. oder gibts da bessere Varianten?
Manuel Pöter
  Mit Zitat antworten Zitat
Benutzerbild von Gregor
Gregor

Registriert seit: 14. Mär 2003
Ort: Jona
133 Beiträge
 
#2

Re: Hat User Admin-Rechte?

  Alt 9. Okt 2003, 13:10
Ich muss ehrlich sagen das ich mich nicht so gut auskenne in dem Gebiet, aber könnte man nicht den Usernamen irgendwie in der Regestry suchen oder kontrollieren?

Gregor
<->Besser mit Klugen in die Hölle als mit Dummen ins Paradies.<->
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#3

Re: Hat User Admin-Rechte?

  Alt 9. Okt 2003, 13:10


Vielleicht hilft dir das :
überprüfen, ob man als Administrator eingeloggt ist?
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Hat User Admin-Rechte?

  Alt 9. Okt 2003, 13:14
Nein leider nicht.. die Funktion funktioniert im Prinzip genauso wie die die ich momentan verwendet, sie basiert auf dem Process-Token des eigenen Prozesses, nur bei einem Service ist das eben das System-Token...
Manuel Pöter
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Hat User Admin-Rechte?

  Alt 9. Okt 2003, 20:50
Kuck doch in welcher Gruppe der Benutzer ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#6

Re: Hat User Admin-Rechte?

  Alt 9. Okt 2003, 21:05
Zitat von Motzi:
Mein Programm läuft jetzt jedoch als Service und damit im System-Kontext.
SYSTEM ist auch ein 'Benutzer'-Account. Ich habe auch (irgendwo) eine IsLocalSystem() geschrieben (kanns ja mal suchen...).
Zitat von Motzi:
Hat jetzt vielleicht wer eine spontane Idee, wie ich dennoch die Rechte des Users überprüfen kann?
Prüfen, ob das gewünschte Recht aktiviert/aktivierbar ist.
Zitat von Motzi:
Meine erste Idee war per GetUserName den Namen des Users
Es kann keinen bis beliebig viele 'interaktive' Benutzer geben (wenn Du das meinst) - insofern ist schwierig, wie Du den/die Benutzer (aus einem nicht-interaktiven Service heraus) finden/auseinanderhalten willst.

Also bleibt die Frage, was genau Du prüfen willst (ich denke es wird auf die Prüfung von aktivierten/aktivierbaren Rechten hinauslaufen - Mitglieder der lokalen Gruppe der Administratoren müssen nicht zwingend 'Admin'-Rechte haben, und andere Benutzer-/Gruppen-/...-Accounts können 'Admin'-Rechte haben...).


Gruß Nico
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Hat User Admin-Rechte?

  Alt 9. Okt 2003, 23:48
Moin Motzi,

schau Dir doch mal die API NetUserGetInfo in Verbindung mit der Struktur USER_INFO_1 an.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#8

Re: Hat User Admin-Rechte?

  Alt 10. Okt 2003, 00:17
@Christian: Leider scheitert das dran, daß es absolut nicht zuverlässig ist. Zum Teil werden auch Sessions angezigt, die es nicht mehr gibt (also die irgendwann einen Timeout bekommen werden).

Den interaktiven Benutzer kann man tatsächlich nicht herausfinden. Man könnte versuchen, anhand des DACL der Default WinSta Rückschlüsse zu ziehen, allerdings kann jeder diesen DACL anpassen.

Um zu ermitteln welche Benutzer eingeloggt sind, benutzt man üblicherweise die Registry-Methode. Wenn du Beispielcode brauchst, schau dir mein LoggedOn2 an. Arbeite seit über einem Jahr an einer neuen Version.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#9

Re: Hat User Admin-Rechte?

  Alt 10. Okt 2003, 01:09
Wenn die Anfrage eines Benutzers an den Service per NamedPiped erfolgt, sieh Dir ImpersonateNamedPipeClient() an (bei RPC heißt die entsprechende Funktion RpcImpersonateClient() usw. usf.).
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#10

Re: Hat User Admin-Rechte?

  Alt 10. Okt 2003, 01:28
In einem der älteren PSDKs gab es glaube ich sogar ein Beispiel zu den "neuen" DuplicateHandle() APIs von NT mit einem Beispiel zu Impersonate-APIs
  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 08:07 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