Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# Rechte eines Benutzers ermitteln (https://www.delphipraxis.net/59228-rechte-eines-benutzers-ermitteln.html)

JayK 19. Dez 2005 18:14


Rechte eines Benutzers ermitteln
 
Hallo,

ich möchte mit meinem Programm in den Local_Machine Teil der Registry und in den "All Users\Anwendungsdaten"-Ordner schreiben [1]. Bevor ich das tue, möchte ich jedoch ermitteln, ob der Benutzer, der mein Programm ausführt überhaupt die nötigen Rechte dazu hat (also Administrator ist).
Ich hab aber keine Idee, wie man das abfragen könnte :( Hab mich im Namespace
Code:
System.Security
versucht ein wenig zu orientieren, bin auf
Code:
System.Security.Permissions.RegistryPermissionAccess.AllAccess
als enum-Definition gestoßen, habe aber kein Objekt oder Klasse gefunden, von der ich diesen Wert beziehen könnte, sodass ich über die Rechte Bescheid wüsste. :?
Ich hab auch schon in der Hilfe gesucht, aber nix brauchbares gefunden.
Bin für jede Hilfe dankbar!

Schonmal Danke im voraus
JayK

[1] Bevor einer meckert, das gehöre sich nicht: es muss unbedingt sein ;)

thomasw 19. Dez 2005 19:06

Re: Rechte eines Benutzers ermitteln
 
Wenn RegOpenKey(Ex) fehlschlägt, heisst das, dass der Benutzer nicht die benötigten Rechte hat. Das braucht man nicht extra abzuprüfehn. Wenn der Benutzer die benötigten Rechte nicht hat, kannst du automatisch auch nicht dort reinschreiben.

JayK 19. Dez 2005 20:27

Re: Rechte eines Benutzers ermitteln
 
Ich möchte ja, das mein Prog das beim Start ermittelt, und dann eine MessageBox mit einem Hinweis erscheint, damit der User sich nicht wundert.

malo 19. Dez 2005 20:37

Re: Rechte eines Benutzers ermitteln
 
Ich weiß ja nicht, was passiert, wenn RegOpenKey fehlschlägt. Aber wenn eine Exception ausgelöst wird, kann man es per try..catch abfangen. ;)

MathiasSimmack 19. Dez 2005 21:09

Re: Rechte eines Benutzers ermitteln
 
Zitat:

Zitat von JayK
Bevor ich das tue, möchte ich jedoch ermitteln, ob der Benutzer, der mein Programm ausführt überhaupt die nötigen Rechte dazu hat (also Administrator ist).

Mal irgendwann von sakura bekommen:
Code:
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsPrincipal wp = (Thread.CurrentPrincipal as WindowsPrincipal);
if(!wp.IsInRole(WindowsBuiltInRole.Administrator) &&
   !wp.IsInRole(WindowsBuiltInRole.PowerUser))
{
  // Fehler
}
Den Rest findest du, denke ich, im SDK. ;)

JayK 20. Dez 2005 18:28

Re: Rechte eines Benutzers ermitteln
 
Klasse, genau sowas hab ich gesucht :-D Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:59 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