Лекция: Изолированные хранилища данных. Создание изолированных хранилищ данных. Доступ к изолированным хранилищам

Изолированное хранилище — это механизм хранения данных, обеспечивающий изоляцию и безопасность. При изолированном хранении нет необходимости указывать уникальные пути для безопасного размещения кода в файловой системе, и данные защищены от других приложений, имеющих доступ только к изолированному хранению. Нет необходимости в аппаратно закодированной информации, указывающей место размещения области хранения данных приложения.

То есть изолированное хранилище предоставляет виртуальную файловую систему, которая позволяет сохранять данные, специфичные для приложения и пользователя. Уникальное изолированное хранилище создается для каждой комбинации пользователей и приложений (приложение может создать много хранилищ, по одному для каждого пользователя, для пользователя может быть создано много хранилищ).

Изолированное хранилище не является специфичным для конкретного браузера. Например, запуская приложение сначала в Internet Explorer, а затем в Firefox, пользователь имеет доступ к одному и тому же хранилищу.

Примечание. Пользователь с правами администратора Windows имеет доступ к изолированным хранилищам других пользователей.

Изолированные хранилища легко использовать, потому что они основаны на той же потоковой модели, что и доступ к обычным файлам в .NET. Для доступа к изолированному хранилищу используются типы пространства имен System. 10. IsolatedStorage

Что хранят в изолированных хранилищах

Изолированное хранилище может оказаться полезным во многих ситуациях, в том числе для следующих четырех сценариев:

Загружаемые элементы управления. Элементам управления, загружаемым через Интернет, не разрешено записывать данные на жесткий диск посредством обычных классов ввода-вывода, но они могут использовать изолированное хранилище для хранения параметров пользователя и состояний приложения.

Хранение общих компонентов. Компоненты, общие для нескольких приложений, могут использовать изолированное хранилище для обеспечения управляемого доступа к хранилищам данных.

Хранение на сервере. Серверные приложения могут использовать изолированные хранилища для представления отдельных хранилищ большому числу пользователей, обращающихся с запросами к приложению. Перемещение. Приложения могут также использовать изолированное хранилище с перемещаемыми профилями пользователей. Это позволяет изолированным данным пользователя перемещаться вслед за его профилем.

Изолированное хранилище не следует использовать в следующих ситуациях:

Для хранения важных конфиденциальных данных, таких как незашифрованные ключи или пароли, т.к. изолированное хранилище не защищено от высоконадежного кода, от неуправляемого кода или от правомочных пользователей компьютера.

Хранения кода.

Для хранения параметров конфигурации и развертывания, которые контролируются администраторами. (настройки пользователя не считаются параметрами конфигурации, т.к. они не управляются администраторами).

Многие приложения используют базы данных для хранения и изолирования данных, в которых одна или несколько строк могут представлять хранилище для определенного пользователя. Применение изолированное хранилища вместо базы данных как правило выбирается в тех случаях, когда число пользователей невелико, когда использование базы данных влечет значительные потери производительности или когда отсутствуют средства для поддержания баз данных. Изолированное хранилище также представляет вполне реальную альтернативу в тех случаях, когда приложению требуется более гибкое и сложное хранилище, чем строка в базе данных.

Создание

Платформа .NET Framework предоставляет три класса в пространстве имен System.IO.IsolatedStorage, помогающие выполнять задачи, включающие изолированное хранилище:

Класс IsolatedStorageFile, наследующий от System.IO.IsolatedStorage.IsolatedStorage, обеспечивает базовую функциональность для управления хранимыми сборками и файлами приложений. Экземпляр класса IsolatedStorageFile служит для представления единичного хранилища, расположенного в файловой системе.

Класс IsolatedStorageFileStream, наследующий от System.IO.FileStream, предоставляет доступ к файлам, расположенным в хранилище.

Класс IsolatedStorageScope — это перечисление, позволяющее создавать и выбирать хранилища с необходимым типом изоляции.

Существует 2 способа создания изолированног хранилища:

1) хранилище уровня пользователя

IsolatedStorageFile user = IsolatedStorageFile.GetUserStoreForAssembly();

содержится информация специфичная для данного пользователя

2) хранилище уровня компьютера

IsolatedStorageFile machine = IsolatedStorageFile.GetMachineStoreForAssembly();

в изолированном хранилище содержится информация специфичная для локального компьютера и сборки

Создание файла и каталога в изолированном хранилище:

Доступ

Использование изолированного хранения позволяет частично доверенным приложениям сохранять данные под контролем политики безопасности компьютера. Это особенно удобно при работе с загружаемыми компонентами, которые не вызывают у пользователя полного доверия. Политика безопасности редко предоставляет такому коду право доступа к файловой системе с использованием стандартных механизмов ввода-вывода. Однако по умолчанию код, запускаемый с локального компьютера, из локальной или глобальной сети получает право на использование изолированного хранилища.

Для управления доступом к изолированному хранилищу общеязыковая среда выполнения использует объекты IsolatedStorageFilePermission. Каждый объект имеет свойства, которые определяют следующие значения:

Разрешенное использование, которое указывает тип разрешенного доступа. Значения являются членами перечисления IsolatedStorageContainment. .

Квота хранилища

Среда выполнения требует разрешение IsolatedStorageFilePermission, когда код впервые пытается открыть хранилище. Определяется, следует ли предоставить это pазрешение, на основе количества надежного кода. Если разрешение выдается, значения разрешенного использования и квота хранилища определяются политикой безопасности и запросом кода на получение разрешения IsolatedStorageFilePermission. Политика безопасности устанавливается с помощью Средств конфигурации .NET Framework (Mscorcfg.msc). Все вызывающие программы в стеке вызовов проверяются на наличие по меньшей мере одного соответствующего разрешения на использования. Среда выполнения также проверяет наличие квоты у кода, открывшего или создавшего хранилище, в которое записывается файл. Если все эти условия выполнены, то выдается разрешение. Квота проверяется каждый раз при записи файла в хранилище.

Коду приложения не нужно запрашивать разрешение, поскольку общая языковая среда выполнения выдаст соответствующее разрешение IsolatedStorageFilePermission, исходя из политики безопасности. Однако имеет смысл запрашивать определенные разрешения для своего приложения, включая IsolatedStorageFilePermission.

69 Понятие – кэширование

еще рефераты
Еще работы по информатике