| 

.NET C# Java Javascript Exception

2
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?
01.06.2011
KN 1,7k 1 8
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.
KN 01.06.2011
2 Antworten
1
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.
01.06.2011
Jaksa 4,0k 1 8
Wenn der aktuelle Benutzer selbst über Windows-Explorer die Dateien nicht sieht, wird er es auch nicht mit dem Programm sehen können!
Konstantin 01.06.2011
Wenn der aktuelle Benutzer selbst über Windows-Explorer die Dateien nicht sieht, wird er es auch nicht mit dem Programm sehen können!
Konstantin 01.06.2011
Wenn die nur als hidden markiet sind, dann schon.
Hier bräuchten wir mal noch zusätliche Infos
Jaksa 01.06.2011
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
KN 01.06.2011
1
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!
Jaksa 01.06.2011
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.
KN 01.06.2011
1
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.
Jaksa 01.06.2011

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
KN 01.06.2011
Siehe nochmal meine Antwort + Kommentar.
Konstantin 01.06.2011
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.
Jaksa 01.06.2011
3
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.
01.06.2011
Konstantin 3,7k 8
Mein Programm läuft nicht auf dem Server, es läuft auf dem Client.
KN 01.06.2011
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.
Konstantin 01.06.2011
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.
Konstantin 01.06.2011
Hi Konstantin, da hatte ich dich wirklich falsch verstanden. Ich werde diese Möglichkeit ausprobieren. Danke für den Tipp!
KN 01.06.2011

Stelle deine .net-Frage jetzt!