Метод Silverlight 4 FileInfo.OpenRead работает с любой папкой без повышенных разрешений.

У меня есть приложение 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, запущенные в браузерах.

Любая помощь будет оценена по достоинству.


person oyemanueel    schedule 16.09.2011    source источник


Ответы (1)


Я думаю, что вас беспокоит то, что с помощью OpenFileDialog можно прочитать любой файл, независимо от его местоположения в файловой системе клиента.

Это нормально и нормально. OOB с ограничениями доверия применяется только к незапрошенному доступу. Это доступ к файловой системе без прямого и явного взаимодействия со стороны пользователя.

В случае OpenFileDialog пользователь явно указал, какой файл (ы) выбрать, и пользователи могут выбирать любые файлы по своему усмотрению. Это верно даже для стандартного встроенного браузера.

person AnthonyWJones    schedule 16.09.2011
comment
Да, я думал, что политика безопасности «Только доступ к папкам профиля пользователя» должна применяться и к взаимодействию с пользователем через OpenFileDialog. Спасибо, что разъяснили это. - person oyemanueel; 17.09.2011