Ich erstelle ein Programm, das mithilfe des .NET-Installationsprojekts installiert wird. Das Programm schreibt in Einstellungsdateien in sein Verzeichnis im Programmverzeichnis. Es gibt einige Active Directory-Einstellungen, die verhindern, dass die Anwendung das Verzeichnis aufruft, wenn ein Benutzer mit eingeschränkten Rechten das Programm ausführt. Gibt es weg, um die Einstellungen für den Anwendungsordner durch die Installation zu ändern, so wird dies kein Problem sein?E/A-Berechtigungseinstellungen mit dem .net-Installationsprogramm
Antwort
Schreiben in den Ordner Programme ist eine wirklich schlechte Idee, sollten Sie davon ausgehen, dass dieser Speicherort "nur lesen" ist, sobald installiert.
Das Speichern von Benutzereinstellungen in Programmdateien verursacht Probleme, wenn mehr als zwei Personen den Computer gleichzeitig verwenden (z. B. Terminaldienste), welche Einstellungen gespeichert werden sollen. Möchten andere Benutzer "Ihre" Einstellungen kennen? Was passiert, wenn Ihr Programm Einstellungen als Benutzer A in die Datei schreibt, aber Benutzer B die Datei nicht bearbeiten kann? Benutzer B möglicherweise Zugriff auf das Verzeichnis, aber nicht lesen/löschen Sie die Einstellungsdatei, da diese von Benutzer A gehört.
Legacy win9x Programme schreiben oft in den Ordner Programmdateien, Windows Vista macht tatsächlich einige nette Tricks, um diese zu lassen Programme funktionieren. Wenn Ihr Programm eine Datei schreibt, stellt Vista sie an einen anderen Ort, der nur für diesen Benutzer zugänglich ist. Das gleiche gilt für Registry-Schreibvorgänge in HKLM (oder so habe ich nach Stunden des Debuggens entdeckt) und Server 2008 macht dasselbe.
Wenn Sie benötigen Benutzereinstellungen die beste Alternative zu speichern wäre die Einstellungen in den Ordner Anwendungsdaten (Umgebungsvariable% APPDATA%)
speichern Wenn die Einstellungen systemweit sind, dann wird der Benutzer mit Administratorrechten sollte Legen Sie diese nach der Installation oder beim ersten Start fest und sie sollten nicht von eingeschränkten Benutzern überschrieben werden können.
Also, um Ihre Frage zu beantworten - JA gibt es eine Möglichkeit zu tun, was Sie gefragt haben. Aber es ist eine schlechte Idee, es ist unsicher und wird wahrscheinlich auf lange Sicht Probleme verursachen.
Sie können eine benutzerdefinierte Installer-Klasse schreiben, die die Sicherheitsberechtigungen des Ordners ändern kann. Dies würde voraussetzen, dass die Installation von einem Benutzer ausgeführt wird, der berechtigt ist, die Datei-/Verzeichnissicherheit zu ändern.
Die beste Option ist, nicht unter Programme in Verzeichnisse zu schreiben.
- 1. Vererbungsproblem mit dem ivar auf dem iPhone
- 2. setInterval mit dem Wert vor dem letzten?
- 3. mit dem TSqlParser
- 4. mit dem Objekt arbeiten
- 5. Mit dem Codezeichen
- 6. Mit dem Systemaufruf open()
- 7. Wie mit dem Argumente
- 8. Problem mit dem org.testng.testNg
- 9. Datenelement mit dem Klassennamen
- 10. Cocos2d Mit dem gleichen
- 11. Ersetzen "?" mit dem Mittelwert
- 12. jQuery mit dem Pluszeichen
- 13. Probleme mit dem Radgrid
- 14. Problem mit dem Datenabruf
- 15. Wohin mit dem Container?
- 16. Probleme mit dem Index
- 17. Doctrine2 Sluggable mit dem Feld mit Verein
- 18. Probleme mit dem linken Raum mit UITextField
- 19. Verbindung mit dem Mongodb-Cluster mit Mongoengine
- 20. Mit benutzerdefinierten CAShapeLayer mit dem Knopf animieren
- 21. Mit Swap mit dem Objekt Selbstmord
- 22. Interaktion mit dem Browser mit C#
- 23. Codeigniter: Mit dem Schalter mit foreach-Schleife
- 24. Problem mit py2app mit dem lxml Paket
- 25. Finden Element mit dem Attribut mit minidom
- 26. Mit SqlDependency mit dem Namen Queue
- 27. Mit dem Linux-Aufruf sysfs_notify
- 28. Plugin validieren - mit dem submitHandler
- 29. .htaccess Problem mit dem Dateinamen
- 30. Problem mit dem Flash-Kontaktformular