IsolatedStorageContainment Wyliczenie

Definicja

Przestroga

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

Określa dozwolone użycie izolowanego magazynu.

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
Dziedziczenie
IsolatedStorageContainment
Atrybuty

Pola

AdministerIsolatedStorageByUser 112

Nieograniczona możliwość administrowania sklepem użytkownika. Umożliwia przeglądanie i usuwanie całego magazynu użytkowników, ale nie dostęp do odczytu inny niż tożsamość domeny/zestawu użytkownika.

ApplicationIsolationByMachine 69

Storage najpierw jest izolowany przez komputer, a następnie przez aplikację. Zapewnia to magazyn danych dla aplikacji, która jest dostępna w dowolnym kontekście domeny. Przedział danych dla aplikacji wymaga dodatkowego zaufania, ponieważ potencjalnie zapewnia "tunel" między aplikacjami, które mogłyby naruszyć izolację danych aplikacji w określonych witrynach sieci Web.

ApplicationIsolationByRoamingUser 101

Storage najpierw jest izolowany przez użytkownika, a następnie przez dowody aplikacji. Storage będzie wędrować po włączeniu roamingu danych użytkownika Windows. Zapewnia to magazyn danych dla aplikacji, która jest dostępna w dowolnym kontekście domeny. Przedział danych dla aplikacji wymaga dodatkowego zaufania, ponieważ potencjalnie zapewnia "tunel" między aplikacjami, które mogłyby naruszyć izolację danych aplikacji w określonych witrynach sieci Web.

ApplicationIsolationByUser 21

Storage jest najpierw izolowana przez użytkownika, a następnie przez aplikację. Storage jest również izolowany przez komputer. Zapewnia to magazyn danych dla aplikacji, która jest dostępna w dowolnym kontekście domeny. Przedział danych dla aplikacji wymaga dodatkowego zaufania, ponieważ potencjalnie zapewnia "tunel" między aplikacjami, które mogłyby naruszyć izolację danych aplikacji w określonych witrynach sieci Web.

AssemblyIsolationByMachine 64

Storage jest najpierw izolowany przez komputer, a następnie przez zestaw kodu. Zapewnia to magazyn danych dla zestawu, który jest dostępny w dowolnym kontekście domeny. Przedział danych dla zestawu wymaga dodatkowego zaufania, ponieważ potencjalnie zapewnia "tunel" między aplikacjami, które mogłyby naruszyć izolację danych aplikacji w określonych witrynach sieci Web.

AssemblyIsolationByRoamingUser 96

Storage jest najpierw izolowany przez użytkownika, a następnie przez dowody zestawu. Storage będzie wędrować po włączeniu roamingu danych użytkownika Windows. Zapewnia to magazyn danych dla zestawu, który jest dostępny w dowolnym kontekście domeny. Przedział danych dla zestawu wymaga dodatkowego zaufania, ponieważ potencjalnie zapewnia "tunel" między aplikacjami, które mogłyby naruszyć izolację danych aplikacji w określonych witrynach sieci Web.

AssemblyIsolationByUser 32

Storage jest najpierw izolowana przez użytkownika, a następnie przez zestaw kodu. Storage jest również izolowany przez komputer. Zapewnia to magazyn danych dla zestawu, który jest dostępny w dowolnym kontekście domeny. Przedział danych dla zestawu wymaga dodatkowego zaufania, ponieważ potencjalnie zapewnia "tunel" między aplikacjami, które mogłyby naruszyć izolację danych aplikacji w określonych witrynach sieci Web.

DomainIsolationByMachine 48

Storage jest najpierw izolowany przez komputer, a następnie przez domenę i zestaw. Dostęp do danych można uzyskać tylko w kontekście tej samej aplikacji i tylko wtedy, gdy jest uruchamiany na tym samym komputerze. Jest to przydatne, gdy zestaw innej firmy chce zachować prywatny magazyn danych.

DomainIsolationByRoamingUser 80

Storage jest najpierw izolowana przez użytkownika, a następnie przez domenę i zestaw. Storage będzie wędrować po włączeniu roamingu danych użytkownika Windows. Dostęp do danych można uzyskać tylko w kontekście tej samej aplikacji i tylko wtedy, gdy jest uruchamiany przez tego samego użytkownika. Jest to przydatne, gdy zestaw innej firmy chce zachować prywatny magazyn danych.

DomainIsolationByUser 16

Storage jest najpierw izolowana przez użytkownika, a następnie przez domenę i zestaw. Storage jest również izolowany przez komputer. Dostęp do danych można uzyskać tylko w kontekście tej samej aplikacji i tylko wtedy, gdy jest uruchamiany przez tego samego użytkownika. Jest to przydatne, gdy zestaw innej firmy chce zachować prywatny magazyn danych.

None 0

Korzystanie z izolowanego magazynu jest niedozwolone.

UnrestrictedIsolatedStorage 240

Korzystanie z izolowanego magazynu jest dozwolone bez ograniczeń. Kod ma pełny dostęp do dowolnej części magazynu użytkowników, niezależnie od tożsamości domeny lub zestawu. Użycie izolowanego magazynu obejmuje możliwość wyliczania zawartości izolowanego magazynu danych magazynu.

Przykłady

W tym przykładzie pokazano, jak poinformować CLR, że kod w tym zestawie wymaga IsolatedStoragePermission polecenia , a także pokazuje, jak zapisywać i odczytywać dane z izolowanego magazynu.

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.

Uwagi

Magazyn izolowany używa dowodów w celu określenia unikatowego obszaru magazynu do użycia przez aplikację lub składnik. Tożsamość zestawu jednoznacznie określa katalog główny wirtualnego systemu plików do użycia przez ten zestaw. W związku z tym zamiast wielu aplikacji i składników współużytkować wspólny zasób, taki jak system plików lub rejestr, każdy z nich ma z natury przypisany własny obszar plików.

Podczas przypisywania izolowanego magazynu są używane cztery podstawowe zakresy izolacji:

  • User — Kod jest zawsze w zakresie zgodny z bieżącym użytkownikiem. Ten sam zestaw będzie otrzymywać różne magazyny podczas uruchamiania przez różnych użytkowników.

  • Machine — Kod jest zawsze w zakresie zgodnym z maszyną. Ten sam zestaw otrzyma te same magazyny, gdy będą uruchamiane przez różnych użytkowników na tej samej maszynie.

  • Assembly— Kod jest identyfikowany kryptograficznie przez silną nazwę (na przykład Microsoft.Office.* lub Microsoft.Office. Word), według wydawcy (na podstawie klucza publicznego), według adresu URL (na przykład http://www.fourthcoffee.com/process/grind.htm), witryny lub strefy.

  • Domain — Kod jest identyfikowany na podstawie dowodów skojarzonych z domeną aplikacji. Tożsamość aplikacji internetowej pochodzi z adresu URL witryny lub według adresu URL, witryny lub strefy strony sieci Web. Tożsamość kodu lokalnego jest oparta na ścieżce katalogu aplikacji.

Aby uzyskać definicje adresów URL, witryny i strefy, zobacz UrlIdentityPermission, SiteIdentityPermissioni ZoneIdentityPermission.

Te tożsamości są grupowane razem, w tym przypadku tożsamości są stosowane po drugim do momentu utworzenia żądanego izolowanego magazynu. Prawidłowe grupowania to User+Assembly i User+Assembly+Domain. Ta grupa tożsamości jest przydatna w wielu różnych aplikacjach.

Jeśli dane są przechowywane przez domenę, użytkownika i zestaw, dane są prywatne w tym tylko kodzie w tym zestawie mogą uzyskiwać dostęp do danych. Magazyn danych jest również izolowany przez aplikację, w której działa, dzięki czemu zestaw nie reprezentuje potencjalnego wycieku przez ujawnienie danych innym aplikacjom.

Izolacja według zestawu i użytkownika może służyć do danych użytkownika, które mają zastosowanie w wielu aplikacjach; na przykład informacje o licencji lub dane osobowe użytkownika (nazwa, poświadczenia uwierzytelniania itd.), które są niezależne od aplikacji.

IsolatedStorageContainment uwidacznia flagi, które określają, czy aplikacja może używać izolowanego magazynu, a jeśli tak, które kombinacje tożsamości mogą jej używać. Określa również, czy aplikacja może przechowywać informacje w lokalizacji, która może wędrować z użytkownikiem (należy skonfigurować Windows profilów użytkowników mobilnych lub przekierowania folderów).

Dotyczy

Zobacz też