Класс IsolatedStorageFile

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

IsolatedStorageFile Этот класс представляет собой область файловой системы изолированной-памяти , которая может содержать файлы и каталоги. Для работы с изолированным хранилищем не требуется высоких привилегий, поэтому приложения смогут хранить в нем свои данные, даже не обладая разрешениями на доступ к системе пользователя. Изолированное хранилище представляет собой новый механизм хранения данных , который предоставляет частичное доверия приложений в изолированной программной среде безопасности для хранения данных , таким образом, контролируется политикой безопасности компьютера. Поскольку файловые операции ввода / вывода нарушают параметры безопасности зоны Интернета, изолированное хранилище предлагает  жизнеспособным вариантом для   хранения части данных на клиенте , которые могут быть извлечены при следующем запуске приложения. По умолчанию код , работающие на локальном компьютере, в локальной сети или Интернет предоставляется право использовать изолированное хранение. Из технической аббревиатуры и определения не сильно понятна его суть работа, но попробую объяснить вам свои словами. Для начала хочу сказать что данный класс нужен для мобильных разработок и веб разработок, для дексктопа он бесполезен. Почему так? Все дело в том что доступ на компьютере получить можно абсолютно к любому файлу, соответственно и его данным, однако к примеру в windows phone это ни так, доступ к файлам из изолированого хранилища может, получить только та программа которая их создала. Другое дело в работе с веб приложениями, тут можно сравнить с так называемыми cookie файлами которые хранят данные о пользователе, и сервисе. Но данные имеют ограниченный размер, и возможности, а так же удаляются при чистке истории браузера. Другое дело с изолированным хранилищем, в нем так же можно хранить информацию о покупках, настройках сервиса и данных пользователя. Во первых это безопасно, так как своего рода песочница, во вторых удобно, оно не требует получения сертификации для вашего сервиса, что может накладывать некие ограничения для приложения. Ведь ни каждый разработчик может позволить себе потратиться на получения этого сертификата, хотя по моему опыту, и тенденции все идет к тому что в будущем именно так и будет, уже сейчас свое приложение требует запуска с правами администратора…

System.IO.IsolatedStorage — пространство имен, в котором определены классы для работы с изолированным хранилищем.

Для хранения данных сборок и пользователей в защищенных областях используется класс IsolatedStorageFile. Класс IsolatedStorageFileStream позволяет обмениваться данными с безопасными хранилищами. Поскольку класс IsolatedStorageFileStream – потомок FileStream, с созданными им файлами можно работать, как с любыми другими файлами файловой системы. Класс IsolatedStorageFilePermission гарантирует наличие у кода разрешений, необходимых для взаимодействия с изолированным хранилищем.

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

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

 

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

  • Хранения конфиденциальных и важных данных
  • Хранения кода
  • Хранения данных развертывания

 

Есть два типа изоляции, которые могут быть использованы:

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

IsolatedStorageFile user=IsolatedStorageFile.GetUserStoreForAssembly();

IsolatedStorageFile machine=IsolatedStorageFile.GetMachineStoreForAssembly();

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

Оба типа изоляции требуют, чтобы область хранения была связана с пользователем и сборкой. Только пользователь и сборка, создавший хранилище имеют к нему доступ, за исключением windows.

Запись в изолированное хранилище.

Создание изолированного хранилища уровня .Net сборки.

Создание файлового потока с указанием: Имени файла, FileMode, объекта хранилища.

В начале мы создаем объект нашего изолированного хранилища. Для создания потока создаем унаследованный потоковый  IsolatedStorageFileStream класс от FileStrem. В конструктор которого передаем:имя файла, устанавливаем вариант операции открытие или создание файла/папки, а так же указываем объект хранилища. В нашем случаи он пользовательский.

запись производится следующей частью кода:

Чтение из изолированного хранилища.

Создание папки для хранения файла изолированного хранилища.

 

 

Обновлено: 30.05.2018 — 15:23

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.