Метод Silverlight 4 FileInfo.OpenRead работает с любой папкой без повышенных разрешений. - PullRequest
1 голос
/ 17 сентября 2011

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

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

1 Ответ

0 голосов
/ 17 сентября 2011

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

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

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

...