Announcement

Collapse
No announcement yet.

FileStream in SilverLight

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • FileStream in SilverLight

    StreamWriter sw = new StreamWriter(new FileStream(FileName, FileMode.Create, FileAccess.Write));

    Meine Silverlight Anwendung bricht die aufgerufene Methode an dieser Stelle ohne Exception und Meldung einfach ab.

    Auf http://msdn.microsoft.com/de-de/libr...=vs.95%29.aspx lese ich:

    Macht beim Aufruf durch eine Anwendung mit höherer Vertrauensstellung einen Stream um eine Datei verfügbar, wobei synchrone und asynchrone Lese- und Schreibvorgänge unterstützt werden.

    Und dann finde ich den Link zu dieser Seite:
    http://msdn.microsoft.com/de-de/libr...=vs.95%29.aspx

    Aber ehrlich gesagt, verstehen tu ich da nichts. Ich versteh zwar, dass für den Anwender ein Sicherheitsrisiko besteht. Aber für den Anwender ist meine Anwendung nutzlos, wenn er das Ergebnis nicht speichern kann. Was muß ich denn tun, damit meine Anwendung problemlos speichern darf?

    Danke, Günther
    Günther

  • #2
    Nun, das ist ähnlich wie bei einem Javaapplet. Dies wird ebenfalls clientseitig im Browser aus dem Netz in einer Sandbox ausgeführt. Schließlich kann ja nun nicht jeder Anwendung der Zugriff auf dem Rechner gewährt werden (hier: speichern).

    Durch spezielle Maßnahmen (Java -> SecurtiyManager) kann man diese Einschränkungen umgehen. Dann muss der Anwender explizit zustimmen, dass dieses Applet "mehr" darf.

    In Silverlight ist es offenbar so, dass das dann lokal "Out-of-Browser" installiert werden muss und die Anwendung muss so konzipiert sein
    Christian

    Comment


    • #3
      Out of Browser hab ich versucht. Das Design ist plötzlich potthässlich und das Speichern hat trotzdem nicht geklappt, es gab aber wenigstens eine Exception. Der Vorteil einer Silverlight Anwendung ist doch dass sie nicht installiert werden muß, sondern direkt aus dem Internet geladen wird und somit immer aktuell ist. Genau aus diesem Grund habe ich den Auftrag bekommen, die Anwendung so zu entwickeln. Ein Programm das erst installiert werden muss haben wir schon längst. Mein Anwender klickt auf Speichern, bekommt eine Dialogbox um Pfad und Dateiname auszuwählen. Also hat er zugestimmt, dass die Anwendung dies darf. Was soll der Witz, dass ein Programm zwar einen SaveFileDialog anzeigen kann, aber dann den Schwanz einziehen muß?
      Günther

      Comment


      • #4
        Was soll der Witz,
        Weniger ein Witz als ein Sicherheitsfeature. Ich möchte jedenfalls nicht, dass irgendjemand auf meinem Rechner rumspeichert.

        bekommt eine Dialogbox um Pfad und Dateiname auszuwählen
        Das ist ja wohl keine Voraussetzung um einen Stream zu nutzen.

        Als Alternative könnte sich anbieten etwas auf dem Server zu speichern oder einen Download zu initiieren
        Christian

        Comment


        • #5
          Der Witz wäre der, dass zwar alle notwendigen Funktionen implementiert sind, dann aber nicht funktionieren. Mogelpackung würde ich das dann nennen.

          Aber, alle Aufregung ist umsonst. Es gibt ja auch noch die Methode SaveFileDialog.OpenFile(), und damit kann mein Wunsch erfüllt werden.
          Günther

          Comment


          • #6
            SaveFileDialog.OpenFile(),
            Vermutlich gibt es die genau dafür, weil dann zwingend eine Bestätigung des Anwenders vorliegt und dann nicht "hintenrum" etwas woanders hin gespeichert werden kann
            Christian

            Comment

            Working...
            X