昇格された許可なしにブラウザー内でSilverlight4アプリケーションを実行しています。その中に、OpenFileDialogウィンドウが表示されるファイルのアップロード機能セクションがあり、アップロードするファイルを選択してデータベースに保存できます。
問題は、アプリケーションが、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
}
これは実際には場所に関係なくファイルを読み取り(system32フォルダーのファイルを読み取ることもできます)、「MyDocuments」または「Documents」フォルダーを取得する手段がありません。Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
動かない。つまり、要するに。ブラウザで実行されているSilverlightアプリでは想定されていない、任意の場所の任意のファイルからバイトを読み取ることができます。
どんな助けでもありがたいです。