Entwickler-Ecke

WPF / Silverlight - Einfacher Zugriff auf das Dateisystem (des Servers)


FrEEzE2046 - Mo 18.01.10 16:35
Titel: Einfacher Zugriff auf das Dateisystem (des Servers)
Hallo,

ich bin komplett in C# und Silverlight und programmiere normalerweiße in Assembler und C/C++.
Ein exotischer Ausflug für mich also.

Es scheitert auch schon an den einfachsten Dingen. Ich habe ein Login-Menü, dass über einen Button "registrieren" verfügt. Dieser Button löst ein Ereignis aus, welches das eingegebene Datum in eine Datei schreiben soll.

Hier der Code dazu:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
string path = "C:\\Dokumente und Einstellungen\\Sascha.Holl.HOELTL\\Desktop\\data.dat"
FileInfo fi = new FileInfo(path);
//fi.SetAccessControl(new System.Security.AccessControl.FileSecurity(path, System.Security.AccessControl.AccessControlSections.All));
      
using (StreamWriter sw = new StreamWriter(fi.OpenWrite()))
{
  sw.Write("Hallo");  
}


Ich bekomme hier immer die Fehlermeldung "FileSecurityState permission denied"
Dieser Code, den ich im Internet gefunden habe, funktioniert:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
SaveFileDialog dialog = new SaveFileDialog();
dialog.Filter = "Textdatei (*.txt)|*.txt";
bool? result = dialog.ShowDialog();
      
string FileName = dialog.SafeFileName;
      
if (result.HasValue && result.Value)
{
  //StreamWriter writer = new StreamWriter(dialog.OpenFile());
  StreamWriter writer = new StreamWriter(FileName, true);
  writer.Write(tbBenutzername.Text);
  writer.Close();
}


Das ist aber natürlich nicht, dass was ich will. Was genau mache ich falsch bzw. wie kann ich das Security-Level neu setzen? Ich will nicht auf den Client-Rechner, sondern den Server (also mich selbst) zugreifen.


Christian S. - Mo 18.01.10 17:38

Silverlight-Anwendungen werden auf dem Client ausgeführt, ein direkter Zugriff auf der Server ist nicht möglich.

Du kannst aber auf dem Server z.B. einen Service zur Verfügung stellen, welcher dann von der Silverlightanwendung genutzt wird. WCF wird hier auch oft genannt, davon habe ich aber keine Ahnung ;-) Bei allen Möglichkeiten musst Du sicherstellen, dass Unbefugte nicht den Zugang missbrauchen.


FrEEzE2046 - Mo 18.01.10 18:28

user profile iconChristian S. hat folgendes geschrieben Zum zitierten Posting springen:
Du kannst aber auf dem Server z.B. einen Service zur Verfügung stellen, welcher dann von der Silverlightanwendung genutzt wird.


Da ich - wie bereits erwähnt - aus einer ganz anderen Richtung komme: Hast du vielleicht mal eine gute Seite mit einem Beispiel dazu?


Kha - Mo 18.01.10 19:11

Das hier sieht mir nach einem relativ guten Überblick aus: http://msdn.microsoft.com/en-us/magazine/cc794260.aspx


FrEEzE2046 - Di 19.01.10 11:52

Danke für die Antwort, sieht ganz gut aus.
Noch eine Frage: Wie kann ich meine Silverlight Anwendung veröffentlichen? Ich habe ein virtuelles Verzeichnis im IIS Manager 6.0 erstellt und meine Site dort eingetragen, komm aber trotzdem nur vom localhost aus drauf.