Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Изолированное хранилище предоставляет виртуальную файловую систему в отсеке данных. Класс IsolatedStorageFile предоставляет ряд методов взаимодействия с изолированным хранилищем. Для создания и извлечения хранилищ IsolatedStorageFile предоставляется три статических метода:
GetUserStoreForAssembly возвращает хранилище, изолированное отдельно для каждого пользователя и каждой сборки.
GetUserStoreForDomain возвращает хранилище, изолированное по домену и сборке.
Оба метода извлекают хранилище, которое принадлежит коду, из которого они вызываются.
Статический метод GetStore возвращает изолированное хранилище, указанное путем передачи сочетания параметров области.
Следующий код возвращает хранилище, изолированное пользователем, сборкой и доменом.
IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly | IsolatedStorageScope.Domain, null, null);
Dim isoStore As IsolatedStorageFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or
IsolatedStorageScope.Assembly Or IsolatedStorageScope.Domain, Nothing, Nothing)
С помощью GetStore метода можно указать, что хранилище должно перемещаться с перемещаемым профилем пользователя. Дополнительные сведения о настройке этого параметра см. в разделе "Типы изоляции".
Изолированные хранилища, полученные из разных сборок, по умолчанию являются различными хранилищами. Доступ к хранилищу другой сборки или домена можно получить, передав доказательства сборки или домена в параметры метода GetStore. Для этого требуется разрешение на доступ к изолированному хранилищу по удостоверению домена приложения. Дополнительные сведения см. в GetStore разделе о перегрузках методов.
Методы GetUserStoreForAssembly, GetUserStoreForDomain и GetStore возвращают объект IsolatedStorageFile. Сведения о том, какой тип изоляции наиболее подходит для вашей ситуации, см. в разделе "Типы изоляции". При наличии изолированного объекта файла хранилища можно использовать изолированные методы хранения для чтения, записи, создания и удаления файлов и каталогов.
Нет механизма, который предотвращает передачу IsolatedStorageFile объекта коду, который не имеет достаточного доступа для получения самого хранилища. Удостоверения домена и сборки и разрешения изолированного IsolatedStorage хранилища проверяются только при получении ссылки на объект, как правило, в методе GetUserStoreForAssembly, GetUserStoreForDomain или GetStore. Следовательно, защита ссылок на объекты IsolatedStorageFile является ответственностью кода, использующего эти ссылки.
Пример
В следующем коде представлен простой пример класса, получающего хранилище, изолированное пользователем и сборкой. Код можно изменить, чтобы получить хранилище, изолированное пользователем, доменом и сборкой, добавив IsolatedStorageScope.Domain к аргументам, которые GetStore передает метод.
После запуска кода можно убедиться, что хранилище было создано, введя StoreAdm /LIST в командной строке. Это запускает средство изолированного хранилища (Storeadm.exe) и перечисляет все текущие изолированные хранилища для пользователя.
using System;
using System.IO.IsolatedStorage;
public class ObtainingAStore
{
public static void Main()
{
// Get a new isolated store for this assembly and put it into an
// isolated store object.
IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly, null, null);
}
}
Imports System.IO.IsolatedStorage
Public Class ObtainingAStore
Public Shared Sub Main()
' Get a new isolated store for this assembly and put it into an
' isolated store object.
Dim isoStore As IsolatedStorageFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or
IsolatedStorageScope.Assembly, Nothing, Nothing)
End Sub
End Class