Sdílet prostřednictvím


Typy izolace

Přístup k izolovanému úložišti je vždy omezen na uživatele, který ho vytvořil. K implementaci tohoto typu izolace používá modul CLR (Common Language Runtime) stejný pojem identity uživatele, který operační systém rozpozná, což je identita přidružená k procesu, ve kterém je kód spuštěn při otevření úložiště. Tato identita je ověřená identita uživatele, ale zosobnění může způsobit dynamické změny identity aktuálního uživatele.

Přístup k izolovanému úložišti je také omezen na základě identity přidružené k doméně a sestavení aplikace nebo samotnému sestavení. Modul runtime získá tyto identity následujícími způsoby:

  • Identita domény představuje důkaz aplikace, což v případě webové aplikace může být úplná adresa URL. V případě kódu hostovaného v prostředí může být identita domény založená na cestě k adresáři aplikace. Například pokud spustitelný soubor běží z cesty C:\Office\MyApp.exe, identita domény by byla C:\Office\MyApp.exe.

  • Identita sestavení je důkazem sestavení. Může to pocházet z kryptografického digitálního podpisu, což může být silný název sestavení, vydavatel softwaru sestavení nebo jeho identita adresy URL. Pokud má sestavení silný název i identitu vydavatele softwaru, použije se identita vydavatele softwaru. Pokud sestavení pochází z internetu a není podepsáno, použije se identita adresy URL. Další informace o sestaveních a silných názvech naleznete v tématu Programování se sestaveními.

  • Roamingové aplikace se přesouvají s uživatelem, který má roamingový uživatelský profil. Soubory se zapisují do síťového adresáře a stáhnou se do libovolného počítače, ke kterém se uživatel přihlásí. Další informace o cestovních profilech uživatelů najdete na IsolatedStorageScope.Roaming.

Kombinací konceptů identity uživatele, domény a sestavení může izolované úložiště izolovat data následujícími způsoby, z nichž každá má vlastní scénáře použití:

Jednu z těchto izolací lze kombinovat s putujícím uživatelským profilem. Další informace najdete v části Izolované úložiště a roaming.

Následující obrázek ukazuje, jak jsou úložiště izolovaná v různých oborech:

Diagram znázorňující izolaci podle uživatele a sestavení

Kromě roamingových obchodů je izolované úložiště vždy implicitně izolované na úrovni počítače, protože používá úložná zařízení, která jsou místní pro daný počítač.

Důležité

Izolované úložiště není dostupné pro aplikace pro Windows 8.x Store. Místo toho použijte datové třídy aplikací v Windows.Storage oborech názvů zahrnutých v rozhraní API prostředí Windows Runtime k ukládání místních dat a souborů. Další informace naleznete v sekci Data aplikací na Windows Dev Center.

Izolace podle uživatele a sestavení

Pokud musí být sestavení, které používá úložiště dat, přístupné z libovolné domény aplikace, je vhodná izolace podle uživatele a sestavení. V této situaci se izolované úložiště obvykle používá k ukládání dat, která se vztahují napříč více aplikacemi, a není svázaná s žádnou konkrétní aplikací, jako je jméno uživatele nebo informace o licenci. Pro přístup k úložišti izolovanému uživatelem a sestavením musí být kód důvěryhodný pro přenos informací mezi aplikacemi. Izolace podle uživatele a sestavení je obvykle povolena v intranetech, ale ne na internetu. Volání statické IsolatedStorageFile.GetStore metody s předáním uživatele a sestavení IsolatedStorageScope vrátí úložný prostor s tímto druhem izolace.

Následující příklad kódu načte úložiště, které je izolované uživatelem a sestavením. K úložišti je možné přistupovat prostřednictvím objektu isoFile .

IsolatedStorageFile isoFile =
    IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
    IsolatedStorageScope.Assembly, null, null);
Dim isoFile As IsolatedStorageFile = _
    IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
        IsolatedStorageScope.Assembly, Nothing, Nothing)

Příklad, který používá parametry důkazů, viz GetStore(IsolatedStorageScope, Evidence, Type, Evidence, Type).

Metoda GetUserStoreForAssembly je k dispozici jako zkratka, jak je znázorněno v následujícím příkladu kódu. Tuto klávesovou zkratku nelze použít k otevření obchodů, které jsou schopné roamingu; v takových případech použijte GetStore.

IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForAssembly();
Dim isoFile As IsolatedStorageFile = _
    IsolatedStorageFile.GetUserStoreForAssembly()

Izolace podle uživatele, domény a sestavení

Pokud vaše aplikace používá sestavení třetí strany, které vyžaduje privátní úložiště dat, můžete k uložení privátních dat použít izolované úložiště. Izolace uživatelem, doménou a sestavením zajišťuje, že k datům má přístup pouze kód v daném sestavení a pouze v případě, že sestavení používá aplikace, která byla spuštěna při vytvoření sestavení úložiště, a pouze v případě, že uživatel, pro kterého bylo úložiště vytvořeno, spustí aplikaci. Izolace podle uživatele, domény a sestavení zabraňuje úniku dat z sestavení třetí strany do jiných aplikací. Tento typ izolace by měl být vaší výchozí volbou, pokud víte, že chcete použít izolované úložiště, ale nevíte, jaký typ izolace použít. Volání statické metody GetStore na IsolatedStorageFile s předáním uživatele, domény a sestavení IsolatedStorageScope vrací úložiště s tímto druhem izolace.

Následující příklad kódu načte úložiště izolované uživatelem, doménou a sestavením. K úložišti je možné přistupovat prostřednictvím objektu isoFile .

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)

Další metoda je k dispozici jako zkratka, jak je znázorněno v následujícím příkladu kódu. Tuto klávesovou zkratku nelze použít k otevření obchodů, které jsou schopné roamingu; v takových případech použijte GetStore.

IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForDomain();
Dim isoFile As IsolatedStorageFile = _
    IsolatedStorageFile.GetUserStoreForDomain()

Izolované úložiště a roaming

Roaming profily uživatelů jsou funkce Windows, která uživatelům umožňuje nastavit identitu v síti a použít ji k přihlášení k libovolnému síťovému počítači, přenáší přitom všechna přizpůsobená nastavení. Sestavení, které používá izolované úložiště, může určit, že by se izolované úložiště uživatele mělo přesunout s putujícím profilem uživatele. Roaming lze použít ve spojení s izolací uživatelem a sestavením, nebo izolací uživatelem, doménou a sestavením. Pokud se nepoužívá obor roamingu, úložiště se nebudou použít ani v případě, že se použije cestovní profil uživatele.

Následující příklad kódu načte roamingové úložiště izolované uživatelem a sestavením. K úložišti je možné přistupovat prostřednictvím objektu isoFile .

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)

Obor domény lze přidat k vytvoření úložiště roamingu izolovaného uživatelem, doménou a aplikací. Následující příklad kódu ukazuje toto.

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)

Viz také