Datei auf anderem Pc öffnen / Frage ...

Alexander12

Erfahrenes Mitglied
Hi.

Ich habe eine Datei namens "Paths.dat" auf einem Pc namens "Server" liegen. Diese paths-Datei liegt in C:\Dateien, das Directory ist NICHT freigegeben.

Gibt es irgendeine Möglichkeit mit C# auf diese Datei zu kommen, Sie zu öffnen?
Die Datei soll nicht freigegeben werden, sie soll nur mit nem Speziellen Prog. geöffnet werden können.

Kann Ich so nen Pfad angeben, wie z.B. "\\Server\C:\Dateien\Paths.dat"?
Kriege Ich da zugriffsprobleme wegen den Rechten, weils ja nicht freigegeben ist?
Danke schon Mal! :)


MfG Alexander12
 
Also das ist ja eigentlich die Idee von nicht-freigegebenen Ordnern, dass du eben nicht darauf zugreifen kannst.

Wenn nur dein Programm darauf zugreifen können sollte, musst du das Serverseitig regeln. Der Server muss entscheiden, wer die Datei bekommt und wer nicht.

Du erstellst einen speziellen Windows Benutzer nur für dein Programm und erteilst nur diesem Benutzer Lese/Schreibrechte. (Hab noch nie ein Programm von einem anderen Benutzer ausführen lassn, frag mich nicht)

Du könntest z.B. einen kleine Webserver einrichten (Apache) und mit .htaccess Dateien (HTTP-Authentifikation) den Zugriff mit einem Benutzernamen samt Passwort schützen, oder

Du könntest ein eigenes Serverprogramm schreiben, welches die Datei übers Netzwerk schickt, falls sich der Client identifizieren kann. Lässt sich glaub ich recht gut mit .NET Remoting aber auch über Sockets realisieren.
 
Hi.

Erstmal danke für deine Antwort! :)

Kann Ich eigentlich - Ich will die datei ja nur auslesen, nicht direkt per Pfad auf die Datei mit dem FileStream oder Streamreader etc. drauf zugreifen? :-(


MfG Alexander12
 
Das kannst du, vorausgesetzt du hast Leserechte für diese Datei. Da sie aber nun mal nicht freigegeben und auf einem anderen Computer ist, wird das nicht der Fall sein.

Hinter jedem Dateistream steht ein Windows Dateizugriff. Wenn der ausführende Benutzer nicht über ausreichende Berechtigung verfügt, wird dir eine Exception an den Kopf geworfen.
 
Hi.

Per Socket? :eek:
Hm.. Ist Neuland für mich, hast du evtl. nen Link/Tutorial wo sowas gemacht wird?
Ich werd mir nochml das tut von Alexander Schuc durchlesen über remoting.

Es soll halt ein Programm werden, welches Ordner quasi freigibt, aber Sie nicht in der Netzwerkumgebung zu sehen sind, sondern nur von einem Client. Das Server-Tool verwaltet die Ordner, der Client zieht sich Dateien, also Sharen übers Netzwerk. Beim Server-Tool sollen die Benutzer in eine ListBox eingetragen werden, die gerade aktiv sind.

Vllt. könnt Man das ja anders aufbauen. :-(


MfG Alexander12
 
Alexander, einfach nochmal alle Posts lesen, und du hast die Lösung....

HAPPY NEW YEAR...

damn null sex :(

;-)
 
Hi.

Ja, habe Ich. Ich habe mir auch gerade das Remoting-Tutorial durchgelesen und mir Mal die Klassen TcpListener und TcpClient angeschaut. Das sind ja 3-4 Seiten Code, am Anfang würde es mir ja schon reichen einfach ne Verbindung aufzubauen.. :(

Hast du da evtl. nen Link, zioP?


MfG Alexander12
 
Wieso so kompliziert?

Machst du das unter .NET 2.0?

Wenn ja, dann verwende einfach WindowsPrincipals (also vielleicht auf der MSDN unter Principals nachlesen). Principals stellen Windows-User dar und mit einem derartigen User kann man sich unter 2.0 auch sehr einfach an einem anderen Rechner anmelden und so zu einer Datei gelangen, die für alle anderen nicht zugänglich ist. Musst halt über den Admin-Share gehen, was dem ganzen einen üblen Beigeschmack gibt, aber nun gut ... kommt darauf an, wofür du das brauchst.
 
Hi.

Ja, ja, ich verwende .NET 2.0.

Kann Ich mit den Principals per FileStream, also per Pfad drauf zugreifen?
Wenn ja, wie ist das Format eines solchen Pfades?

Wozu Ichs brauch?
Ich möcht Dateien übers Heimnetzwerk tauschen.
Ein Server-Tool verwaltet die Dateien, die Client-Tools greifen darauf zu und saugen.


MfG Alexander12
 
Zuletzt bearbeitet:
Hi Norbert.

Also das habe Ich rausgefunden:

WindowsPrincipal wp = new WindowsPrincipal(WindowsIdentity.GetCurrent());
this.UserNameTextBox.Text = wp.Identity.Name;

Ich sitze hier an nem Rechner der "Administrator" heisst.
In der TextBox steht dann "ADMINISTRATOR\Besitzer".

Aber wie Ich auf Dateien etc. eines ANDEREN komm steht in der MSDN nicht.


MfG Alexander12
 

Neue Beiträge

Zurück