Знакомство с изолированным хранилищем
Обновлен: Ноябрь 2007
Когда приложение сохраняет данные в файле, выбирать имя файла и место его хранения следует так, чтобы минимизировать вероятность того, что место хранения данных будет доступно другим приложениям и, следовательно, станет уязвимым к повреждению. В отсутствие стандартной системы для решения подобных проблем разработка специальных средств минимизации конфликтов хранения может стать запутанной, а ее результаты — ненадежными.
В изолированном хранилище данные всегда изолированы по пользователю или сборке. Сборка идентифицируется учетными данными, такими как источник или строгое имя. Данные также могут быть изолированы по домену приложения при помощи подобных учетных данных.
В изолированном хранилище приложения сохраняют данные в уникальной ячейке данных, привязанной к одному из аспектов, идентифицирующих код, таких как веб-узел, издатель или подпись. Ячейка данных — это абстракция, а не определенное место хранения. Она состоит из одного или нескольких файлов для изолированного хранения, называемых хранилищами, которые содержат действительные адреса каталогов, в которых хранятся данные. Например, веб-приложение может иметь связанную с ним ячейку данных, а действительное хранение данных для этого приложения может осуществляться в каталоге файловой системы. Данные, сохраняемые в хранилище, могут быть любого типа, от информации о пользовательских настройках до состояния приложения. Для разработчика размещение ячейки данных прозрачно. Хранилища обычно размещаются на стороне клиента, но серверное приложение может использовать изолированные хранилища для олицетворения пользователя, от лица которого оно действует. В изолированном хранилище информация также может храниться на сервере с перемещаемым профилем пользователя, что обеспечивает ее перемещение вместе с пользователем.
Администраторы могут ограничивать размеры изолированного хранилища, доступного приложению или пользователю, в зависимости от соответствующего уровня доверия. Кроме того, администраторы могут удалить все хранящиеся данные пользователя. Чтобы создать изолированное хранилище или получить доступ к нему, в коде необходимо указать соответствующие разрешения IsolatedStorageFilePermission.
Для доступа к изолированному хранилищу коду должны быть назначены все необходимые права операционной системы собственной платформы. Например, при работе с Windows 2000 должны быть выполнены требования списков управления доступом (ACL), которые определяют, какие пользователи имеют права на пользование файловой системой. Приложения Microsoft .NET Framework по умолчанию имеют права доступа к изолированному хранилищу на уровне операционной системы, если только они не выполняют олицетворение (специфическое для платформы). В таком случае ответственность за обеспечение наличия у олицетворяемого пользователя прав, необходимых для доступа к изолированному хранилищу, несет приложение. Такой доступ позволяет коду, запускаемому или загружаемому через Интернет, выполнять чтение и запись в области хранения, относящейся к конкретному пользователю.
В некоторых случаях рекомендуется проверять изменения в изолированном хранилище, используя файловую систему операционной системы. Разработчикам могут потребоваться сведения о размещении файлов изолированного хранилища. Место их размещения зависит от операционной системы. Ниже в таблице приведены корневые адреса файлов изолированного хранилища для некоторых распространенных операционных систем. В корневых адресах см. каталоги Microsoft\IsolatedStorage. Для того чтобы отобразить изолированное хранилище в файловой системе, нужно изменить настройки папки, установив для нее отображение скрытых файлов и папок.
Операционная система |
Местоположение в файловой системе |
---|---|
Windows 98, Windows ME — профили пользователей запрещены |
Перемещаемые хранилища = <КОРНЕВАЯ ПАПКА>\Application Data Неперемещаемые хранилища = WINDOWS\Local Settings\Application Data |
Windows 98, Windows ME — профили пользователей разрешены |
Перемещаемые хранилища = <КОРНЕВАЯ ПАПКА>\Profiles\<пользователь>\Application Data Неперемещаемые хранилища = Windows\Local Settings\Application Data |
Windows NT 4.0 |
<КОРНЕВАЯ ПАПКА>\Profiles\<пользователь>\Application Data |
Windows NT 4.0 с пакетом обновления 4 (SP4) |
Перемещаемые хранилища = <КОРНЕВАЯ ПАПКА>\Profiles\<пользователь>\Application Data Неперемещаемые хранилища = <КОРНЕВАЯ ПАПКА>\Profiles\<пользователь>\Local Settings\Application Data |
Windows 2000, Windows XP, Windows Server 2003 — обновления NT 4.0 |
Перемещаемые хранилища = <КОРНЕВАЯ ПАПКА>\Profiles\<пользователь>\Application Data Неперемещаемые хранилища = <КОРНЕВАЯ ПАПКА>\Profiles\<пользователь>\Local Settings\Application Data |
Windows 2000 — чистая установка (и обновления с Windows 98 и NT 3.51) |
Перемещаемые хранилища = <СИСТЕМНЫЙ ДИСК>\Documents and Settings\<пользователь>\Application Data Неперемещаемые хранилища = <СИСТЕМНЫЙ ДИСК>\Documents and Settings\<пользователь>\Application Data |
Windows XP, Windows Server 2003 — чистая установка (или обновления с Windows 2000 и Windows 98) |
Перемещаемые хранилища = <СИСТЕМНЫЙ ДИСК>\Documents and Settings\<пользователь>\Application Data Неперемещаемые хранилища = <СИСТЕМНЫЙ ДИСК>\Documents and Settings\<пользователь>\Application Data |
Windows Vista |
Перемещаемые хранилища = <СИСТЕМНЫЙ ДИСК>\Пользователи\<пользователь>\AppData\Roaming Неперемещаемые хранилища = <СИСТЕМНЫЙ ДИСК>\Users\<пользователь>\AppData\Local |