Procedura: Recuperare archivi per lo spazio di memorizzazione isolato

Un archivio isolato espone un file system virtuale all'interno di un raggruppamento dati. La classe IsolatedStorageFile fornisce numerosi metodi per l'interazione con un archivio isolato. Per creare e recuperare archivi, IsolatedStorageFile fornisce tre metodi statici:

  • GetUserStoreForAssembly restituisce lo spazio di archiviazione isolato in base a utente e assembly.

  • GetUserStoreForDomain restituisce lo spazio di archiviazione isolato in base a dominio e assembly.

    Entrambi i metodi di recuperano un archivio che appartiene al codice da cui vengono chiamati.

  • Il metodo statico GetStore restituisce un archivio isolato specificato passando una combinazione di parametri di ambito.

Il codice seguente restituisce un archivio isolato in base a utente, assembly e dominio.

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)

È possibile usare il metodo GetStore per specificare che un archivio deve effettuare il roaming con un profilo utente mobile. Per informazioni dettagliate su come specificare questa configurazione, vedere Tipi di isolamento.

Gli archivi isolati ottenuti da assembly diversi sono, per impostazione predefinita, archivi diversi. È possibile accedere all'archivio di un dominio o un assembly diverso passando l'evidenza del dominio o dell'assembly nei parametri del metodo GetStore. È necessaria l'autorizzazione per accedere allo spazio di memorizzazione isolato tramite l'identità del dominio dell'applicazione. Per altre informazioni, vedere gli overload del metodo GetStore.

I metodi GetUserStoreForAssembly, GetUserStoreForDomain e GetStore restituiscono un oggetto IsolatedStorageFile. Per scegliere il tipo di isolamento più adatto alle proprie esigenze, vedere Tipi di isolamento. Quando si ha un oggetto file dello spazio di memorizzazione isolato, è possibile usare i metodi dello spazio di memorizzazione isolato per leggere, scrivere, creare ed eliminare file e directory.

Non c'è un meccanismo che impedisce di passare un oggetto IsolatedStorageFile a codice che non ha autorizzazioni di accesso sufficienti per ottenere l'archivio. Le identità di dominio e assembly e le autorizzazioni dello spazio di memorizzazione isolato vengono controllate solo quando viene ottenuto un riferimento a un oggetto IsolatedStorage, in genere nel metodo GetUserStoreForAssembly, GetUserStoreForDomain o GetStore. Proteggere i riferimenti agli oggetti IsolatedStorageFile è quindi responsabilità del codice che usa tali riferimenti.

Esempio

Il codice seguente fornisce un semplice esempio di classe che ottiene un archivio isolato in base a utente e assembly. È possibile modificare il codice per recuperare un archivio isolato in base a utente, dominio e assembly aggiungendo IsolatedStorageScope.Domain agli argomenti passati dal metodo GetStore.

Dopo avere eseguito il codice, è possibile verificare che l'archivio sia stato creato digitando StoreAdm /LIST nella riga di comando. In questo modo, viene eseguito lo strumento Storeadm.exe (strumento per lo spazio di memorizzazione isolato) e vengono elencati tutti gli archivi isolati correnti per l'utente.

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

Vedi anche