Frage

Ich erstelle ein Programm, das mithilfe des .net-Installationsprojekts installiert wird.Das Programm schreibt Einstellungsdateien in sein Verzeichnis im Verzeichnis „Programme“.Es wird davon ausgegangen, dass es einige Active Directory-Einstellungen gibt, die verhindern, dass die Anwendung auf dieses Verzeichnis zugreift, wenn ein eingeschränkter Benutzer das Programm ausführt.Gibt es eine Möglichkeit, die Einstellungen für den Anwendungsordner während der Installation zu ändern, sodass dies kein Problem darstellt?

War es hilfreich?

Lösung

Das Schreiben in den Ordner „Programme“ ist eine wirklich schlechte Idee. Sie sollten davon ausgehen, dass dieser Speicherort nach der Installation „schreibgeschützt“ ist.

Das Speichern von Benutzereinstellungen in Programmdateien verursacht Probleme, wenn mehr als zwei Personen gleichzeitig den Computer verwenden (z. B.Welche Einstellungen sollen gespeichert werden? Möchten Sie, dass andere Benutzer „Ihre“ Einstellungen kennen?Was passiert, wenn Ihr Programm als Benutzer A Einstellungen in die Datei schreibt, Benutzer B die Datei jedoch nicht bearbeiten kann?Benutzer B hat möglicherweise Zugriff auf das Verzeichnis, kann die Einstellungsdatei jedoch nicht lesen/löschen, da diese Benutzer A gehört.

Ältere Win9x-Programme schreiben oft in den Programmdateiordner. Windows Vista wendet tatsächlich einige nette Tricks an, damit diese Programme funktionieren.Wenn Ihr Programm eine Datei schreibt, legt Vista sie tatsächlich an einem anderen Ort ab, auf den nur dieser Benutzer zugreifen kann.Das Gleiche gilt für Registrierungsschreibvorgänge in HKLM (so habe ich nach stundenlangem Debuggen herausgefunden ...), und Server 2008 macht dasselbe.

Wenn Sie Benutzereinstellungen speichern müssen, besteht die beste Alternative darin, die Einstellungen im Anwendungsdatenordner (Umgebungsvariable %APPDATA%) zu speichern.

Wenn die Einstellungen systemweit gelten, sollte der Administrator diese nach der Installation oder beim ersten Start festlegen und sie sollten nicht von eingeschränkten Benutzern überschrieben werden können.

Um Ihre Frage zu beantworten: JA, es gibt eine Möglichkeit, das zu tun, was Sie gefragt haben.Aber es ist eine schlechte Idee, es ist unsicher und wird auf lange Sicht wahrscheinlich Probleme verursachen.

Andere Tipps

Sie können eine benutzerdefinierte Installationsklasse schreiben, die die Sicherheitsberechtigungen des Ordners ändern kann.Dies würde davon ausgehen, dass die Installation von einem Benutzer durchgeführt wird, der die Berechtigung zum Ändern der Datei-/Verzeichnissicherheit hat.

Die beste Option besteht darin, überhaupt nicht in Verzeichnisse unter „Programme“ zu schreiben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top