2011-09-16 15 views
1

私はSilverlight 4アプリケーションをブラウザ内で実行していますが、その中にはOpenFileDialogウィンドウが表示されるアップロードファイル機能セクションがあり、ファイルをアップロードしてデータベースに保存します。Silverlight 4 FileInfo.OpenReadメソッドは、昇格されたアクセス許可を持たないフォルダで動作しています

問題は、アプリケーションが実際にSilverlightセキュリティポリシーで許可されていないユーザーのプロファイルフォルダ外のファイルにアクセスできることです。

private Asset ReadAsset(FileInfo fileInfo) 
    { 
     byte[] fileBuffer; 


     using (FileStream fileStream = fileInfo.OpenRead()) //This line works from any location 
     { 
      using (BinaryReader binaryReader = new BinaryReader(fileStream)) 
      { 
       fileBuffer = binaryReader.ReadBytes((int)fileStream.Length); 
       binaryReader.Close(); 
      } 
      fileStream.Close(); 
     } 
     DirectoryInfo di = fileInfo.Directory; //This line doesn't work 
    } 

これは実際のファイルに場所を関係なくREAD(私もsystem32フォルダ上のファイルを読むことができた)と私もあるため、「マイドキュメント」や「ドキュメント」フォルダを取得する手段がありません。 Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

動作しません。だから短いです。私はブラウザ上で実行されている銀色のアプリケーションが行うべきではない任意の場所の任意のファイルからバイトを読み取ることができます。

ご協力いただければ幸いです。

答えて

0

あなたが心配しているようだと思うのは、OpenFileDialogを介して、クライアントファイルシステム内の場所に関係なくすべてのファイルを読み取ることができるということです。

これは正常で正常です。信頼の制限付きOOBは、の迷惑なアクセスにのみ適用されます。これは、ユーザーによる直接的および明示的な対話なしでのファイルシステムへのアクセスです。

OpenFileDialogの場合、ユーザーは選択するファイルを明示的に指定しており、ユーザーは希望のファイルを自由に選択できます。これは、標準のインブラウザーアプリであっても当てはまります。

+0

はい、OpenFileDialogを介してユーザーとのやりとりにユーザーアクセスプロファイルへのアクセスのみのセキュリティポリシーを適用する必要があると考えました。それを明確にしてくれてありがとう。 – oyemanueel

関連する問題