У меня есть приложение Silverlight 4, работающее внутри браузера без повышенных разрешений, и в нем есть раздел функциональности загрузки файлов, в котором появляется окно 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), и у меня нет средств, чтобы получить папку «Мои документы» или «Документы», потому что даже.
Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments);
не работает. Короче говоря. Я могу прочитать байты из любого файла в любом месте, которое приложения Silverlight, работающие в браузерах, не должны делать.
Любая помощь будет оценена.