IsolatedStorageContainment Výčet

Definice

Upozornění

Code Access Security is not supported or honored by the runtime.

Určuje povolené použití izolovaného úložiště.

public enum class IsolatedStorageContainment
public enum IsolatedStorageContainment
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public enum IsolatedStorageContainment
[System.Serializable]
public enum IsolatedStorageContainment
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum IsolatedStorageContainment
type IsolatedStorageContainment = 
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type IsolatedStorageContainment = 
[<System.Serializable>]
type IsolatedStorageContainment = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type IsolatedStorageContainment = 
Public Enum IsolatedStorageContainment
Dědičnost
IsolatedStorageContainment
Atributy

Pole

AdministerIsolatedStorageByUser 112

Neomezená možnost správy pro úložiště uživatelů. Umožňuje procházení a odstranění celého úložiště uživatelů, ale ne přístup pro čtení jiný než identita vlastní domény nebo sestavení uživatele.

ApplicationIsolationByMachine 69

Storage je nejprve izolovaný podle počítače a potom podle aplikace. To poskytuje úložiště dat pro aplikaci, která je přístupná v libovolném kontextu domény. Datový oddíl pro jednotlivé aplikace vyžaduje další vztah důvěryhodnosti, protože potenciálně poskytuje "tunel" mezi aplikacemi, které by mohly ohrozit izolaci dat aplikací v konkrétních webových webech.

ApplicationIsolationByRoamingUser 101

Storage je nejprve izolovaný uživatelem a poté důkazy aplikace. Storage se budou v případě, že je povolený Windows roaming uživatelských dat. To poskytuje úložiště dat pro aplikaci, která je přístupná v libovolném kontextu domény. Datový oddíl pro jednotlivé aplikace vyžaduje další vztah důvěryhodnosti, protože potenciálně poskytuje "tunel" mezi aplikacemi, které by mohly ohrozit izolaci dat aplikací v konkrétních webových webech.

ApplicationIsolationByUser 21

Storage nejprve izoluje uživatel a potom aplikace. Storage je také izolovaný počítačem. To poskytuje úložiště dat pro aplikaci, která je přístupná v libovolném kontextu domény. Datový oddíl pro jednotlivé aplikace vyžaduje další vztah důvěryhodnosti, protože potenciálně poskytuje "tunel" mezi aplikacemi, které by mohly ohrozit izolaci dat aplikací v konkrétních webových webech.

AssemblyIsolationByMachine 64

Storage nejprve izoluje počítač a pak sestavení kódu. To poskytuje úložiště dat pro sestavení, které je přístupné v libovolném kontextu domény. Datový oddíl pro sestavení vyžaduje další vztah důvěryhodnosti, protože potenciálně poskytuje "tunel" mezi aplikacemi, které by mohly ohrozit izolaci dat aplikací v konkrétních webových webech.

AssemblyIsolationByRoamingUser 96

Storage je nejprve izolovaný uživatelem a potom sestavením důkazů. Storage se budou v případě, že je povolený Windows roaming uživatelských dat. To poskytuje úložiště dat pro sestavení, které je přístupné v libovolném kontextu domény. Datový oddíl pro sestavení vyžaduje další vztah důvěryhodnosti, protože potenciálně poskytuje "tunel" mezi aplikacemi, které by mohly ohrozit izolaci dat aplikací v konkrétních webových webech.

AssemblyIsolationByUser 32

Storage je nejprve izolovaný uživatelem a pak sestavením kódu. Storage je také izolovaný počítačem. To poskytuje úložiště dat pro sestavení, které je přístupné v libovolném kontextu domény. Datový oddíl pro sestavení vyžaduje další vztah důvěryhodnosti, protože potenciálně poskytuje "tunel" mezi aplikacemi, které by mohly ohrozit izolaci dat aplikací v konkrétních webových webech.

DomainIsolationByMachine 48

Storage nejprve izoluje počítač a pak podle domény a sestavení. K datům je možné přistupovat pouze v kontextu stejné aplikace a pouze při spuštění na stejném počítači. To je užitečné, když sestavení třetí strany chce zachovat privátní úložiště dat.

DomainIsolationByRoamingUser 80

Storage nejprve izoluje uživatel a pak podle domény a sestavení. Storage se budou v případě, že je povolený Windows roaming uživatelských dat. K datům je možné přistupovat pouze v kontextu stejné aplikace a pouze v případě, že je spustí stejný uživatel. To je užitečné, když sestavení třetí strany chce zachovat privátní úložiště dat.

DomainIsolationByUser 16

Storage nejprve izoluje uživatel a pak podle domény a sestavení. Storage je také izolovaný počítačem. K datům je možné přistupovat pouze v kontextu stejné aplikace a pouze v případě, že je spustí stejný uživatel. To je užitečné, když sestavení třetí strany chce zachovat privátní úložiště dat.

None 0

Použití izolovaného úložiště není povolené.

UnrestrictedIsolatedStorage 240

Použití izolovaného úložiště je povolené bez omezení. Kód má úplný přístup k libovolné části úložiště uživatelů bez ohledu na identitu domény nebo sestavení. Toto použití izolovaného úložiště zahrnuje možnost vytvořit výčet obsahu izolovaného úložiště dat.

Příklady

Tento příklad ukazuje, jak zjistit CLR, že kód v tomto sestavení vyžaduje IsolatedStoragePermission , a také ukazuje, jak zapisovat a číst z izolovaného úložiště.

using namespace System;
using namespace System::Security;
using namespace System::Security::Permissions;
using namespace System::IO::IsolatedStorage;
using namespace System::IO;


static void WriteIsolatedStorage()
{
    try
    {
        // Attempt to create a storage file that is isolated by
        // user and assembly. IsolatedStorageFilePermission
        // granted to the attribute at the top of this file
        // allows CLR to load this assembly and execution of this
        // statement.
        Stream^ fileCreateStream = gcnew
            IsolatedStorageFileStream(
            "AssemblyData",
            FileMode::Create,
            IsolatedStorageFile::GetUserStoreForAssembly());

        StreamWriter^ streamWriter = gcnew StreamWriter(
            fileCreateStream);
        try
        {
            // Write some data out to the isolated file.

            streamWriter->Write("This is some test data.");
            streamWriter->Close();	
        }
        finally
        {
            delete fileCreateStream;
            delete streamWriter;
        } 
    }
    catch (IOException^ ex)
    {
        Console::WriteLine(ex->Message);
    }

    try
    {
        Stream^ fileOpenStream =
            gcnew IsolatedStorageFileStream(
            "AssemblyData",
            FileMode::Open,
            IsolatedStorageFile::GetUserStoreForAssembly());
        // Attempt to open the file that was previously created.

        StreamReader^ streamReader = gcnew StreamReader(
            fileOpenStream);
        try
        { 
            // Read the data from the file and display it.

            Console::WriteLine(streamReader->ReadLine());
            streamReader->Close();
        }
        finally
        {
            delete fileOpenStream;
            delete streamReader;
        }
    }
    catch (FileNotFoundException^ ex)
    {
        Console::WriteLine(ex->Message);
    }
    catch (IOException^ ex)
    {
        Console::WriteLine(ex->Message);
    }
}
// Notify the CLR to only grant IsolatedStorageFilePermission to called methods. 
// This restricts the called methods to working only with storage files that are isolated 
// by user and assembly.
[IsolatedStorageFilePermission(SecurityAction::PermitOnly, UsageAllowed = IsolatedStorageContainment::AssemblyIsolationByUser)]
int main()
{
    WriteIsolatedStorage();
}

// This code produces the following output.
//
//  This is some test data.
using System;
using System.Security.Permissions;
using System.IO.IsolatedStorage;
using System.IO;

// Notify the CLR to only grant IsolatedStorageFilePermission to called methods.
// This restricts the called methods to working only with storage files that are isolated
// by user and assembly.
[IsolatedStorageFilePermission(SecurityAction.PermitOnly, UsageAllowed = IsolatedStorageContainment.AssemblyIsolationByUser)]
public sealed class App
{
    static void Main()
    {
        WriteIsolatedStorage();
    }
    private static void WriteIsolatedStorage()
    {
        // Attempt to create a storage file that is isolated by user and assembly.
        // IsolatedStorageFilePermission granted to the attribute at the top of this file
        // allows CLR to load this assembly and execution of this statement.
        using (Stream s = new IsolatedStorageFileStream("AssemblyData", FileMode.Create, IsolatedStorageFile.GetUserStoreForAssembly()))
        {

            // Write some data out to the isolated file.
            using (StreamWriter sw = new StreamWriter(s))
            {
                sw.Write("This is some test data.");
            }
        }

        // Attempt to open the file that was previously created.
        using (Stream s = new IsolatedStorageFileStream("AssemblyData", FileMode.Open, IsolatedStorageFile.GetUserStoreForAssembly()))
        {
            // Read the data from the file and display it.
            using (StreamReader sr = new StreamReader(s))
            {
                Console.WriteLine(sr.ReadLine());
            }
        }
    }
}

// This code produces the following output.
//
//  Some test data.
Option Strict On
Imports System.Security.Permissions
Imports System.IO.IsolatedStorage
Imports System.IO


' Notify the CLR to only grant IsolatedStorageFilePermission to called methods. 
' This restricts the called methods to working only with storage files that are isolated 
' by user and assembly.
<IsolatedStorageFilePermission(SecurityAction.PermitOnly, UsageAllowed:=IsolatedStorageContainment.AssemblyIsolationByUser)> _
Public NotInheritable Class App

    Shared Sub Main()
        WriteIsolatedStorage()
    End Sub
    Shared Sub WriteIsolatedStorage()
        ' Attempt to create a storage file that is isolated by user and assembly.
        ' IsolatedStorageFilePermission granted to the attribute at the top of this file 
        ' allows CLR to load this assembly and execution of this statement.
        Dim s As New IsolatedStorageFileStream("AssemblyData", FileMode.Create, IsolatedStorageFile.GetUserStoreForAssembly())
        Try

            ' Write some data out to the isolated file.
            Dim sw As New StreamWriter(s)
            Try
                sw.Write("This is some test data.")
            Finally
                sw.Dispose()
            End Try
        Finally
            s.Dispose()
        End Try

        ' Attempt to open the file that was previously created.
        Dim t As New IsolatedStorageFileStream("AssemblyData", FileMode.Open, IsolatedStorageFile.GetUserStoreForAssembly())
        Try
            ' Read the data from the file and display it.
            Dim sr As New StreamReader(t)
            Try
                Console.WriteLine(sr.ReadLine())
            Finally
                sr.Dispose()
            End Try
        Finally
            t.Dispose()
        End Try

    End Sub
End Class

' This code produces the following output.
'
'  Some test data.

Poznámky

Izolované úložiště používá důkazy k určení jedinečné oblasti úložiště pro použití aplikací nebo komponentou. Identita sestavení jednoznačně určuje kořen virtuálního systému souborů pro použití tímto sestavením. Proto místo mnoha aplikací a komponent, které sdílejí společný prostředek, jako je systém souborů nebo registr, každý má vlastní oblast souborů, která je k němu ze své podstaty přiřazena.

Při přiřazování izolovaného úložiště se používají čtyři základní obory izolace:

  • User – Kód je vždy vymezen podle aktuálního uživatele. Stejné sestavení obdrží různá úložiště při spouštění různými uživateli.

  • Machine - Kód je vždy vymezen podle počítače. Stejné sestavení obdrží stejné úložiště při spouštění různých uživatelů na stejném počítači.

  • Assembly– Kód je identifikovaný kryptograficky silným názvem (například Microsoft.Office nebo* Microsoft.Office. Word), podle vydavatele (na základě veřejného klíče), podle adresy URL (například http://www.fourthcoffee.com/process/grind.htm), podle webu nebo podle zóny.

  • Domain – Kód je identifikován na základě důkazů přidružených k doméně aplikace. Identita webové aplikace je odvozena z adresy URL webu nebo podle adresy URL, webu nebo zóny webové stránky. Identita místního kódu je založená na cestě adresáře aplikace.

Definice adresy URL, webu a zóny naleznete v části UrlIdentityPermission, SiteIdentityPermissiona ZoneIdentityPermission.

Tyto identity jsou seskupené dohromady, v takovém případě se identity použijí po druhé, dokud se požadovaná izolovaná úložiště nevytvořila. Platné seskupení jsou User+Assembly a User+Assembly+Domain. Toto seskupení identit je užitečné v mnoha různých aplikacích.

Pokud jsou data uložená doménou, uživatelem a sestavením, jsou tato data v daném kódu soukromá. Úložiště dat je také izolované aplikací, ve které běží, takže sestavení nepředstavuje potenciální únik tím, že vystavuje data jiným aplikacím.

Izolaci sestavením a uživatelem lze použít pro uživatelská data, která se vztahují napříč více aplikacemi; Například informace o licenci nebo osobní údaje uživatele (jméno, ověřovací přihlašovací údaje atd.), které jsou nezávislé na aplikaci.

IsolatedStorageContainment zveřejňuje příznaky, které určují, jestli je aplikace povolena používat izolované úložiště, a pokud ano, které kombinace identit ho smí používat. Určuje také, jestli má aplikace povoleno ukládat informace do umístění, které může s uživatelem ukládat (musí být nakonfigurované Windows cestovní profily uživatelů nebo přesměrování složky).

Platí pro

Viz také