Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dostęp do izolowanego magazynu jest zawsze ograniczony do użytkownika, który go utworzył. Aby zaimplementować ten typ izolacji, środowisko uruchomieniowe języka wspólnego używa tego samego pojęcia tożsamości użytkownika rozpoznawanej przez system operacyjny, czyli tożsamości skojarzonej z procesem, w którym kod jest uruchamiany podczas otwierania magazynu. Ta tożsamość jest uwierzytelnianą tożsamością użytkownika, ale personifikacja może spowodować dynamiczne zmianę tożsamości bieżącego użytkownika.
Dostęp do izolowanego magazynu jest również ograniczony zgodnie z tożsamością skojarzoną z domeną i zestawem aplikacji lub tylko z zestawem. Środowisko uruchomieniowe uzyskuje te tożsamości w następujący sposób:
Tożsamość domeny reprezentuje dowód aplikacji, która w przypadku aplikacji internetowej może być pełnym adresem URL. W przypadku kodu hostowanego w powłoce tożsamość domeny może być oparta na ścieżce katalogu aplikacji. Jeśli na przykład plik wykonywalny zostanie uruchomiony ze ścieżki C:\Office\MyApp.exe, tożsamość domeny będzie C:\Office\MyApp.exe.
Tożsamość jednostki zestawu jest dowodem na tę jednostkę. Może to pochodzić z kryptograficznego podpisu cyfrowego, który może być silną nazwą zestawu, wydawcą oprogramowania zestawu lub tożsamością adresu URL. Jeśli zestaw ma zarówno silną nazwę, jak i tożsamość wydawcy oprogramowania, zostanie użyta tożsamość wydawcy oprogramowania. Jeśli zestaw pochodzi z Internetu i jest niepodpisany, używany jest identyfikator URL. Aby uzyskać więcej informacji na temat zestawów i silnych nazw, zobacz Programowanie przy użyciu zestawów.
Sklepy w trybie roamingu przemieszczają się z użytkownikiem, który ma profil użytkownika w trybie roamingu. Pliki są zapisywane w katalogu sieciowym i są pobierane na dowolny komputer, do którego loguje się użytkownik. Aby uzyskać więcej informacji na temat profilów użytkowników mobilnych, zobacz IsolatedStorageScope.Roaming.
Łącząc pojęcia dotyczące tożsamości użytkownika, domeny i zestawu, izolowany magazyn może izolować dane na następujące sposoby, z których każdy ma własne scenariusze użycia:
Jedną z tych izolacji można połączyć z profilem użytkownika mobilnego. Aby uzyskać więcej informacji, zobacz sekcję Izolowany magazyn i roaming.
Na poniższej ilustracji pokazano, jak magazyny są izolowane w różnych zakresach:
Z wyjątkiem wędrujących magazynów, izolowana przestrzeń magazynowa jest zawsze niejawnie izolowana przez komputer, ponieważ korzysta z zasobów przechowywania danych lokalnych dla danego komputera.
Ważne
Izolowane pamięci masowe są niedostępne dla aplikacji Sklepu Windows 8.x. Zamiast tego użyj klas danych aplikacji w Windows.Storage
przestrzeniach nazw zawartych w interfejsie API środowiska uruchomieniowego systemu Windows do przechowywania lokalnych danych i plików. Aby uzyskać więcej informacji, zobacz Dane aplikacji w Centrum deweloperów systemu Windows.
Izolacja według użytkownika i zespołu
Gdy zestaw korzystający z magazynu danych musi być dostępny z dowolnej domeny aplikacji, izolacja według użytkownika i zestawu jest odpowiednia. Zazwyczaj w takiej sytuacji izolowany magazyn jest używany do przechowywania danych stosowanych w wielu aplikacjach i nie jest powiązany z żadną konkretną aplikacją, taką jak nazwa użytkownika lub informacje o licencji. Aby uzyskać dostęp do przestrzeni magazynowej izolowanej przez użytkownika i zestaw, kod musi być wiarygodny do przesyłania informacji między aplikacjami. Zazwyczaj izolacja przez użytkownika i kompilacja jest dozwolona na intranetach, lecz nie na Internecie. Wywołanie statycznej metody IsolatedStorageFile.GetStore i przekazanie użytkownika i zestawu IsolatedStorageScope jako argumentów zwraca magazyn z tego rodzaju izolacją.
Poniższy przykład kodu pobiera magazyn, który jest izolowany przez użytkownika i zestaw. Dostęp do magazynu można uzyskać za pośrednictwem isoFile
obiektu .
IsolatedStorageFile isoFile =
IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly, null, null);
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
IsolatedStorageScope.Assembly, Nothing, Nothing)
Aby zapoznać się z przykładem, który używa parametrów dowodów, zobacz GetStore(IsolatedStorageScope, Evidence, Type, Evidence, Type).
Metoda GetUserStoreForAssembly jest dostępna jako skrót, jak pokazano w poniższym przykładzie kodu. Tego skrótu nie można używać do otwierania sklepów, które mogą korzystać z roamingu; w takich przypadkach użyj GetStore.
IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForAssembly();
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetUserStoreForAssembly()
Izolacja według użytkownika, domeny i zestawu
Jeśli aplikacja używa zestawu innej firmy, który wymaga prywatnego magazynu danych, możesz użyć izolowanego magazynu do przechowywania danych prywatnych. Izolacja według użytkownika, domeny i zestawu gwarantuje, że tylko kod w danym zestawie może uzyskać dostęp do danych i tylko wtedy, gdy zestaw jest używany przez aplikację, która była uruchomiona podczas tworzenia zestawu, i tylko wtedy, gdy użytkownik, dla którego magazyn został utworzony, uruchamia aplikację. Izolacja według użytkownika, domeny i zestawu zapobiega wyciekowi danych z zestawu innej firmy do innych aplikacji. Ten typ izolacji powinien być domyślnym wyborem, jeśli wiesz, że chcesz używać izolowanego magazynu, ale nie masz pewności, jakiego typu izolacji użyć. Wywołanie statycznej metody GetStoreIsolatedStorageFile i przekazanie użytkownika, domeny oraz zestawu jako IsolatedStorageScope zwraca przestrzeń magazynową z tego rodzaju izolacją.
Poniższy przykład kodu pobiera magazyn danych izolowany przez użytkownika, domenę i asemblię. Dostęp do magazynu można uzyskać za pośrednictwem isoFile
obiektu .
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)
Inna metoda jest dostępna jako skrót, jak pokazano w poniższym przykładzie kodu. Tego skrótu nie można używać do otwierania sklepów, które mogą korzystać z roamingu; w takich przypadkach użyj GetStore.
IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForDomain();
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetUserStoreForDomain()
Izolowane przechowywanie i roaming
Profile użytkowników mobilnych to funkcja systemu Windows, która umożliwia użytkownikowi skonfigurowanie tożsamości w sieci i użycie tej tożsamości do logowania się na dowolnym komputerze sieciowym, przenosząc wszystkie spersonalizowane ustawienia. Zestaw korzystający z izolowanego magazynu może określić, że izolowany magazyn użytkownika powinien zostać przeniesiony wraz z wędrownym profilem użytkownika. Roaming może być używane w połączeniu z izolacją przez użytkownika i zestaw lub z izolacją przez użytkownika, domenę i zestaw. Jeśli zakres roamingu nie jest używany, sklepy nie będą wędrować nawet wtedy, gdy jest używany profil użytkownika mobilnego.
Poniższy przykład kodu pobiera magazyn roamingowy izolowany w kontekście użytkownika i zestawu. Dostęp do magazynu można uzyskać za pośrednictwem isoFile
obiektu .
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)
Można dodać zakres domeny, aby utworzyć mobilny magazyn izolowany dla użytkownika, domeny i aplikacji. W poniższym przykładzie kodu pokazano to.
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)