Поделиться через


Как: Получить хранилища для изолированного хранения

Изолированное хранилище предоставляет виртуальную файловую систему в отсеке данных. Класс 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

См. также