Procedimiento para obtener los almacenes de almacenamiento aislado

Un almacén aislado expone un sistema de archivos virtual dentro de un compartimiento de datos. La clase IsolatedStorageFile proporciona una serie de métodos para interactuar con un almacén aislado. Para crear y recuperar almacenes, IsolatedStorageFile proporciona tres métodos estáticos:

  • GetUserStoreForAssembly devuelve el almacenamiento que está aislado por usuario y ensamblado.

  • GetUserStoreForDomain devuelve el almacenamiento que está aislado por dominio y ensamblado.

    Ambos métodos recuperan un almacén que pertenece al código desde el que se les llama.

  • El método estático GetStore devuelve un almacén aislado que se especifica pasando una combinación de parámetros de ámbito.

El código siguiente devuelve un almacén aislado por usuario, dominio y ensamblado.

IsolatedStorageFile^ isoStore = IsolatedStorageFile::GetStore(IsolatedStorageScope::User |
    IsolatedStorageScope::Assembly | IsolatedStorageScope::Domain, (Type ^)nullptr, (Type ^)nullptr);
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)

Puede usar el método GetStore para especificar que un almacén se debe trasladar con un perfil de usuario móvil. Para obtener más información sobre cómo configurar esta opción, vea Tipos de aislamiento.

Los almacenes aislados que se obtienen del interior de distintos ensamblados son, de forma predeterminada, almacenes diferentes. Pueda acceder al almacén de otro ensamblado o dominio pasando la evidencia de ensamblado o dominio en los parámetros del método GetStore. Esto requiere el permiso para acceder al almacenamiento aislado según la identidad del dominio de aplicación. Para más información, vea las sobrecargas del método GetStore.

Los métodos GetUserStoreForAssembly, GetUserStoreForDomain y GetStore devuelven un objeto IsolatedStorageFile. Para ayudarle a decidir qué tipo de aislamiento es más adecuado para su situación, vea Tipos de aislamiento. Cuando se tiene un objeto de archivo de almacenamiento aislado, puede usar los métodos de almacenamiento aislado para leer, escribir, crear y eliminar archivos y directorios.

No hay ningún mecanismo que evite que un código pase un objeto IsolatedStorageFile al código que no tiene suficientes derechos de acceso para obtener el propio almacén. Las identidades de dominio y ensamblado y los permisos de almacenamiento aislado se comprueban solo cuando se obtiene una referencia a un objeto IsolatedStorage, normalmente en los métodos GetUserStoreForAssembly, GetUserStoreForDomain o GetStore. La protección de las referencias a los objetos IsolatedStorageFile es, por tanto, responsabilidad del código que usa estas referencias.

Ejemplo

El código siguiente proporciona un ejemplo sencillo de una clase que obtiene un almacén aislado por usuario y ensamblado. El código se puede cambiar para recuperar un almacén que está aislado por usuario, dominio y ensamblado agregando IsolatedStorageScope.Domain a los argumentos que el método GetStore pasa.

Después de ejecutar el código, puede confirmar que se creó un almacén si escribe StoreAdm /LIST en la línea de comandos. Esta opción ejecuta la herramienta de almacenamiento aislado (Storeadm.exe) y enumera todos los almacenes aislados actuales para el usuario.

using namespace System;
using namespace System::IO::IsolatedStorage;

public ref 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, (Type ^)nullptr, (Type ^)nullptr);
    }
};
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

Vea también