Wie prüft Ihr eure Rechte ?
-
Hallo Leute, wie
prüft Ihr eure Rechte?Hallo es geht um folgendes: wenn man eine Applikation installiert (oder auch wären dsie läuft), werden oft Dateien angelegt oder in die Registry geschrieben .
Damit das alles richtig funktioniert, muss vorher geprüft werden ob die Rechte
dafür vorhanden sind .Da die Applikation auch mit eingeschränkten Benutzer-Rechten laufen soll, reicht es nicht zu Prüfen ob Adminrechte vorhanden sind.Wie geht Ihr vor?
-
reicht es nicht, zu prüfen, ob die daten gescxhrieben worden sind?
-
Nein, ich glaube ich hatte mal das Problem mit einem Registry-Eintrag.
Der Eintrage wurde zwar geschrieben und beim nächsten Start der Anwendung war er weg (es waren nur eingeschränkte Benutzerechte ).Ich bin allerdings nicht sicher ob das so war.
-
Oder die Dateien an die dafür vorgesehenen Orte zu schreiben?
Da hat auch ein "Benutzer" die Rechte zu schreiben. Dafür gibt es halt die entsprechenden Ordner im Benutzerverzeichnis.Setup-Routinen erstelle ich z.B. meist mit InnoSetup. Dort kann man die benötigten Rechte angeben, die beim Start des Setups überprüft werden sollen.
-
Oder die Dateien an die dafür vorgesehenen Orte zu schreiben?
Da hat auch ein "Benutzer" die Rechte zu schreiben. Dafür gibt es halt die entsprechenden Ordner im Benutzerverzeichnis.Jeder Benutzer hat unter XP seinen eigenen Registrystrang
(wenn du z.B mit Profilstring usw. arbeitest )
Wenn du dann XP mit anderen Benutzer startest, dann hast du einen andere Registry und nichts geht mehr. Schon mal probiert ? das betrifft alle Einträge unter HCU
Das ist also keine Lösung.
-
Ist es sehr wohl.
Einträge, die für alle gelten sollen, gehören unter HKEY_LOCAL_MACHINE.
Dort reicht auch ein lesender Zugriff. Wenn ein Benutzer sich das nun für seine Bedürfnisse anpassen will, sollte er dies mit HKEY_CURRENT_USER übersteuern können.
-
Und wie prüft du nun ob die Schreibzugriff hast? Das war meine Frage
-
Wenn man in die Registry oder das Dateisystem schreibt bzw. es versucht und man kriegt die Fehlermeldung "Zugriff verweigert" zurück, dann kann man ja entsprechend reagieren.
-
Mach Dir bitte klar, dass ein Test ob man Admin ist oder nicht unter Vista keinen Sinn mehr macht. Im normalfall ist man unter Vista nämlich nie Admin, selbst wenn Du als solcher angemeldet bist!
Also in jedem Fall trustinfo Manifest einbauen und dann bekommst Du nett und brav einen Fehler beim Zugriff auf HKLM und C:\Programme etc.
http://blog.m-ri.de/index.php/2006/12/12/vista-und-die-notwendigkeit-eines-manifestes-fur-die-uac/
BTW:
Winapi: Zugriff verweigert == 5 == ERROR_ACCESS_DENIED
CRT: Zugriff verweigert == EACCES == 13