Hallo, ich habe iene Frage an euch. Ich erstelle gerade eine Anwendung, die diverse Programmdateien verwaltet. Diese Dateien werden auf unserem Server je nach Datei in spezielle Ordnerstrukturen abgelegt. Bisher haben diese Verwaltung immer Personen mit Lese- und Schreibrechten ausgeführt.
Jetzt kommt der Haken. Nun sollen alle User, auch solche die keine Schreib- und Leseberechtigung haben diese Datenfiles dort archivieren können. Das Archivieren funktioniert automatisch, man brauch nur einen Button zu klicken, alles andere läuft selbständig.
Wie könnte ich das machen? Diese User ohne Berechtigung sollen nicht in den Genuss kommen diese Dateien zu sichten oder zu ändern. Deswegen keine Schreib-/Leserechte.
Kann man die Rechte per Code kurzzeitig ändern? macht das Sinn oder ist das eine simmvolle Möglichkeit (Userrechte vergeben aus einem anderen Rechner) ??
Oder wie macht man das am saubersten?
Entweder Du hinterlegst der Anwendung einen Account, der für solche Situationen genutzt wird und die entsprechenden Rechte hat - oder Du musst das über eine "Vermittlungsstelle" lösen, zB ein entsprechender Dienst o.ä.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo oehrle,
am einfachsten wäre es wohl, den neuen Usern Schreibrechte zu geben. Ohne Leserechte wäre es ja ein Stochern im Dunkeln, um was kaputt zu machen.
Am flexibelsten und sichersten sollte das über einen Dienst gehen, der unter einem Konto läuft, das die Rechte hat. Die Anwendung greift dann nicht selber auf die Verzeichnisse zu, sondern sendet einen entsprechenden Request an den Dienst. Der Dienst kann man beliebig programmieren, z.B. so, dass er nur das Schreiben neuer Dateien zulässt, aber nicht das überschreiben bestehender. Dann kann selbst jemand, der die Schnittstelle des Dienstes aus einem eigenen (Hacker-)Programm anspricht, nichts kaputt machen.
herbivore
Hallo herbivore, also denkst ich könnte die User die Dateien in einem gesonderten Ordner wo sie SChreibrechte haben ablegen lasssen. Dann geift ein Dienst (evtl. mit FileWatcher) die Dateien ab, untersucht diese und schiebt diese ins korrekte Verzeichnis?? Das könnte ich machen.
Wenn man es aber einfacher haben möchte, wäre es auch möglich die Berechtigung wöhrend dem Speichervorgang zu verbiegen und nachher wieder zurücksetzen oder über einen anderen Account?
Das mit dem zusätzliche Account würde ich befürworten, wenn
Hat da jemand einen passenden Link für das Account-Gedöns?
Hallo oehrle,
Dann geift ein Dienst (evtl. mit FileWatcher) die Dateien ab, untersucht diese und schiebt diese ins korrekte Verzeichnis??
das könnte man zwar machen, aber ich dachte eher dran, dass man dem Dienst die Requests (inkl. der zu schreibenden Daten) direkt sendet, z.B. über Named Pipes.
Wenn man es aber einfacher haben möchte, wäre es auch möglich die Berechtigung wöhrend dem Speichervorgang zu verbiegen und nachher wieder zurücksetzen?
Rechte sind bei Windows immer benutzerbezogen. Ich wüsste erstmal keinen Weg, wie man einer Anwendung erlauben kann, ein bestimmtes Benutzerkonto zu benutzen, wenn der Anwender selbst das Benutzerkonto nicht benutzen darf (abgesehen von Diensten natürlich, deshalb ja auch der Vorschlag).
herbivore
wäre es auch möglich die Berechtigung wöhrend dem Speichervorgang zu verbiegen und nachher wieder zurücksetzen
Wäre möglich abber sinnlos, denn dazu benötigst du die notwendigen Rechte. Zusätzlich benötigt die Rechteänderung auf dem Ordner je nach Inhalt mehr oder minder lange.
Du könntest auch eine Gruppe erstellen und dort dieser Gruppe dem besagten Ordner nur "Ordner erstellen" und "Dateien erstellen" Rechte geben.
Gruß
Michael
Rechte sind bei Windows immer benutzerbezogen. Ich wüsste erstmal keinen Weg, wie man einer Anwendung erlauben kann, ein bestimmtes Benutzerkonto zu benutzen, wenn der Anwender selbst das Benutzerkonto nicht benutzen darf
Mit Impersonation, wenn man das Passwort mit Hilfe eine entsprechenden Verschlüsselung im Config-File ablegt. Restrisiko fürs Dekompilieren gibts immer.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Wenn man es aber einfacher haben möchte, wäre es auch möglich die Berechtigung wöhrend dem Speichervorgang zu verbiegen und nachher wieder zurücksetzen oder über einen anderen Account?
Tatsächlich ist die Dienst-Lösung imho der einfachere Weg.