Hallo zusammen. Ich soll eine Software (WinForms) schreiben, bei der bestimmte Benutzer aus dem Programm heraus auf Dateien in Verzeichnissen auf dem Server zugreifen können, die sie nicht im Windows-Explorer sehen können. Es muss dabei für die Benutzer auch möglich sein, einzelne Dateien in den "unsichtbaren" Verzeichnissen auszusuchen, auf die sie zugreifen können. Hat jemand eine Idee, wie ich das bewerkstelligen kann?
Hi Jaska, hast du denn eine bessere Idee für das Konzept? Die Schüler sollen im Programm Dateien verwenden, die irgendwo zentral liegen. Den Lagerort der Dateien sollen sie außerhalb des Programms gar nicht sehen. Die Lehrer, deren Rechner auch im gleichen Netzwerk hängen, sollen vollen Zugriff haben.
Hallo, die Methode Directory.GetFiles liefert Dir alle Dateien, auch die versteckten. Ich würde die Dateien in einer Listbox anzeigen lassen und dann auswählen lassen.
Wie was markiert ist, habe ich in der Hand. Es geht um eine Lernsoftware, und die Schüler sollen die Vereichnisse auf dem Server am besten gar nicht im Explorer sehen können, damit sie keinen Unsinn dort machen können. Der Zugriff auf den Server soll nur über mein Programm möglich sein, das auf dem Client läuft
Du kannst ein verstecktes Share erstellen, z.B. \\Server\Daten$. Dieser ist dann über den Explorer nicht sichbar, Du greift von Deiner Anwendug über den UNC Pfad zu. ABER: security through obscurity funktioniert nicht, erst recht nicht in Schulen. Dessen musst Du Dir immer bewust sein!
Was ich noch vergessen habe: andere Benutzer (die Lehrer) sollen bei der Dateiauswahl nicht den Dialog mit der Listbox sehen, die die Schüler sehen, sondern sich mit dem ganz normalen Dateiauswahldialog durch die Verzeichnisse hangeln können. Den Dateiauswahldialog könnte ich ja noch nachbauen, damit er auch die versteckten Dateien anzeigt.
Dem Lehrer könntest Du das Share über das Login script fest zuweisen, es würde dann als Laufwerk X: auftauchen. Ich würde Dir aber raten, dieses Konzept noch mal zu überdenken, es hält nicht lange.
Hi Jaska, hast du denn eine bessere Idee für das Konzept? Die Schüler sollen im Programm Dateien verwenden, die irgendwo zentral liegen. Den Lagerort der Dateien sollen sie außerhalb des Programms gar nicht sehen. Die Lehrer, deren Rechner auch im gleichen Netzwerk hängen, sollen vollen Zugriff haben
Konstantins Lösung ist schon richtig, so würde ich es auch machen. Daten zu verstecken ist keine Lösung - darauf wollte ich hinaus, auch wenn es der einfachster Weg ist.
Du wirst dafür einen neuen Benutzer auf dem Server anlegen müssen, der all diese Rechte bekommt, die du gerade geschildert hast. Dann musst du eine Prüfung einbauen, welcher Benutzer dein Programm starten darf, danach kannst du per Impersonate den Benutzer wechseln, sprich dein Programm wird nun in dem Kontext des Benutzers ausgeführt, den du am Server angelegt hast. Alles andere ist dann normale Windows-Programmierung.
Du hast es vollkommen falsch verstanden. Dein Programm läuft auf dem Client, du sollst nur einen Benutzer auf dem Server anlegen über den sich dein Programm authentifiziert, das spielt dann keine Rolle wer den Client ausführt. Ist das der Lehrer hat er automatisch Zugriff auf die Verzeichnisse durch seinen Benutzerkontext, die Schüler haben diesen Zugriff nicht, deswegen muss deine Anwendung den angelegten Benutzer impersionieren.
Du hast es vollkommen falsch verstanden. Dein Programm läuft auf dem Client, du sollst nur einen Benutzer auf dem Server anlegen über den sich dein Programm authentifiziert, das spielt dann keine Rolle wer den Client ausführt. Ist das der Lehrer hat er automatisch Zugriff auf die Verzeichnisse durch seinen Benutzerkontext, die Schüler haben diesen Zugriff nicht, deswegen muss deine Anwendung den angelegten Benutzer impersionieren.