Typen isolatie
Toegang tot geïsoleerde opslag is altijd beperkt tot de gebruiker die deze heeft gemaakt. Voor het implementeren van dit type isolatie gebruikt de algemene taalruntime hetzelfde begrip van de gebruikersidentiteit die het besturingssysteem herkent. Dit is de identiteit die is gekoppeld aan het proces waarin de code wordt uitgevoerd wanneer de store wordt geopend. Deze identiteit is een geverifieerde gebruikersidentiteit, maar imitatie kan ertoe leiden dat de identiteit van de huidige gebruiker dynamisch wordt gewijzigd.
Toegang tot geïsoleerde opslag wordt ook beperkt op basis van de identiteit die is gekoppeld aan het domein en de assembly van de toepassing, of alleen met de assembly. De runtime verkrijgt deze identiteiten op de volgende manieren:
Domeinidentiteit vertegenwoordigt het bewijs van de toepassing, wat in het geval van een webtoepassing mogelijk de volledige URL is. Voor door de shell gehoste code kan de domeinidentiteit zijn gebaseerd op het pad naar de toepassingsmap. Als het uitvoerbare bestand bijvoorbeeld wordt uitgevoerd vanuit het pad C:\Office\MyApp.exe, is de domeinidentiteit C:\Office\MyApp.exe.
Assembly-identiteit is het bewijs van de assembly. Dit kan afkomstig zijn van een cryptografische digitale handtekening, die de sterke naam van de assembly, de software-uitgever van de assembly of de URL-identiteit kan zijn. Als een assembly zowel een sterke naam als een identiteit van een software-uitgever heeft, wordt de identiteit van de software-uitgever gebruikt. Als de assembly afkomstig is van internet en niet is ondertekend, wordt de URL-identiteit gebruikt. Zie Programmeren met Assembly's voor meer informatie over assembly's en sterke namen.
Roamingarchieven worden verplaatst met een gebruiker met een zwervend gebruikersprofiel. Bestanden worden naar een netwerkmap geschreven en gedownload naar elke computer waarop de gebruiker zich aanmeldt. Zie voor meer informatie over zwervende gebruikersprofielen IsolatedStorageScope.Roaming.
Door de concepten van de gebruikers-, domein- en assembly-identiteit te combineren, kan geïsoleerde opslag gegevens op de volgende manieren isoleren, die elk een eigen gebruiksscenario hebben:
Een van deze isolaties kan worden gecombineerd met een zwervend gebruikersprofiel. Zie de sectie Geïsoleerde opslag en roaming voor meer informatie.
In de volgende afbeelding ziet u hoe winkels in verschillende bereiken worden geïsoleerd:
Met uitzondering van roamingarchieven wordt geïsoleerde opslag altijd impliciet geïsoleerd door de computer, omdat deze gebruikmaakt van de opslagfaciliteiten die lokaal zijn op een bepaalde computer.
Belangrijk
Geïsoleerde opslag is niet beschikbaar voor Windows 8.x Store-apps. Gebruik in plaats daarvan de toepassingsgegevensklassen in de Windows.Storage
naamruimten die zijn opgenomen in de Windows Runtime-API om lokale gegevens en bestanden op te slaan. Zie Toepassingsgegevens in de Windows-Ontwikkelaarscentrum voor meer informatie.
Isolatie per gebruiker en assembly
Wanneer de assembly die gebruikmaakt van het gegevensarchief toegankelijk moet zijn vanuit het domein van een toepassing, is isolatie door gebruiker en assembly geschikt. In deze situatie wordt geïsoleerde opslag meestal gebruikt voor het opslaan van gegevens die van toepassing zijn op meerdere toepassingen en niet is gekoppeld aan een bepaalde toepassing, zoals de naam of licentiegegevens van de gebruiker. Voor toegang tot opslag die is geïsoleerd door gebruikers en assembly's, moet code worden vertrouwd om informatie over te dragen tussen toepassingen. Isolatie door gebruiker en assembly is doorgaans toegestaan op intranetten, maar niet op internet. Het aanroepen van de statische IsolatedStorageFile.GetStore methode en het doorgeven van een gebruiker en een assembly IsolatedStorageScope retourneert opslag met dit soort isolatie.
In het volgende codevoorbeeld wordt een archief opgehaald dat is geïsoleerd door gebruiker en assembly. De store kan worden geopend via het isoFile
object.
IsolatedStorageFile^ isoFile =
IsolatedStorageFile::GetStore(IsolatedStorageScope::User |
IsolatedStorageScope::Assembly, (Type^)nullptr, (Type^)nullptr);
IsolatedStorageFile isoFile =
IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly, null, null);
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
IsolatedStorageScope.Assembly, Nothing, Nothing)
Zie voor een voorbeeld waarin de bewijsparameters GetStore(IsolatedStorageScope, Evidence, Type, Evidence, Type)worden gebruikt.
De GetUserStoreForAssembly methode is beschikbaar als een snelkoppeling, zoals wordt weergegeven in het volgende codevoorbeeld. Deze snelkoppeling kan niet worden gebruikt om winkels te openen die geschikt zijn voor roaming; in dergelijke gevallen te gebruiken GetStore .
IsolatedStorageFile^ isoFile = IsolatedStorageFile::GetUserStoreForAssembly();
IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForAssembly();
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetUserStoreForAssembly()
Isolatie per gebruiker, domein en assembly
Als uw toepassing gebruikmaakt van een assembly van derden waarvoor een persoonlijke gegevensopslag is vereist, kunt u geïsoleerde opslag gebruiken om de persoonlijke gegevens op te slaan. Isolatie door gebruiker, domein en assembly zorgt ervoor dat alleen code in een bepaalde assembly toegang heeft tot de gegevens, en alleen wanneer de assembly wordt gebruikt door de toepassing die werd uitgevoerd toen de assembly het archief maakte, en alleen wanneer de gebruiker voor wie het archief is gemaakt, de toepassing uitvoert. Isolatie door gebruiker, domein en assembly zorgt ervoor dat de assembly van derden geen gegevens naar andere toepassingen lekt. Dit isolatietype moet uw standaardoptie zijn als u weet dat u geïsoleerde opslag wilt gebruiken, maar niet zeker weet welk type isolatie u wilt gebruiken. Het aanroepen van de statische GetStore methode voor het doorgeven van IsolatedStorageFile een gebruiker, domein en assembly IsolatedStorageScope retourneert opslag met dit soort isolatie.
In het volgende codevoorbeeld wordt een winkel opgehaald die is geïsoleerd door gebruiker, domein en assembly. De store kan worden geopend via het isoFile
object.
IsolatedStorageFile^ isoFile =
IsolatedStorageFile::GetStore(IsolatedStorageScope::User |
IsolatedStorageScope::Domain |
IsolatedStorageScope::Assembly, (Type^)nullptr, (Type^)nullptr);
IsolatedStorageFile isoFile =
IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Domain |
IsolatedStorageScope.Assembly, null, null);
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
IsolatedStorageScope.Domain Or _
IsolatedStorageScope.Assembly, Nothing, Nothing)
Een andere methode is beschikbaar als een snelkoppeling, zoals wordt weergegeven in het volgende codevoorbeeld. Deze snelkoppeling kan niet worden gebruikt om winkels te openen die geschikt zijn voor roaming; in dergelijke gevallen te gebruiken GetStore .
IsolatedStorageFile^ isoFile = IsolatedStorageFile::GetUserStoreForDomain();
IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForDomain();
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetUserStoreForDomain()
Geïsoleerde opslag en roaming
Zwervende gebruikersprofielen zijn een Windows-functie waarmee een gebruiker een identiteit op een netwerk kan instellen en die identiteit kan gebruiken om zich aan te melden bij een netwerkcomputer, waarbij alle persoonlijke instellingen worden meegenomen. Een assembly die gebruikmaakt van geïsoleerde opslag kan opgeven dat de geïsoleerde opslag van de gebruiker moet worden verplaatst met het zwervende gebruikersprofiel. Roaming kan worden gebruikt in combinatie met isolatie door gebruiker en assembly of met isolatie door gebruiker, domein en assembly. Als een roamingbereik niet wordt gebruikt, roamen winkels niet, zelfs niet als een zwervend gebruikersprofiel wordt gebruikt.
In het volgende codevoorbeeld wordt een roamingarchief opgehaald dat is geïsoleerd door de gebruiker en assembly. De store kan worden geopend via het isoFile
object.
IsolatedStorageFile^ isoFile =
IsolatedStorageFile::GetStore(IsolatedStorageScope::User |
IsolatedStorageScope::Assembly |
IsolatedStorageScope::Roaming, (Type^)nullptr, (Type^)nullptr);
IsolatedStorageFile isoFile =
IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly |
IsolatedStorageScope.Roaming, null, null);
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
IsolatedStorageScope.Assembly Or _
IsolatedStorageScope.Roaming, Nothing, Nothing)
Een domeinbereik kan worden toegevoegd om een zwervend archief te maken dat is geïsoleerd door gebruiker, domein en toepassing. In het volgende codevoorbeeld ziet u dit.
IsolatedStorageFile^ isoFile =
IsolatedStorageFile::GetStore(IsolatedStorageScope::User |
IsolatedStorageScope::Assembly | IsolatedStorageScope::Domain |
IsolatedStorageScope::Roaming, (Type^)nullptr, (Type^)nullptr);
IsolatedStorageFile isoFile =
IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly | IsolatedStorageScope.Domain |
IsolatedStorageScope.Roaming, null, null);
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
IsolatedStorageScope.Assembly Or IsolatedStorageScope.Domain Or _
IsolatedStorageScope.Roaming, Nothing, Nothing)