2008-08-20 5 views
1

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

2

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.

-1

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.