IsolatedStorageContainment IsolatedStorageContainment IsolatedStorageContainment IsolatedStorageContainment Enum

Определение

Указывает разрешенное использование изолированного хранилища.Specifies the permitted use of isolated storage.

public enum class IsolatedStorageContainment
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum IsolatedStorageContainment
type IsolatedStorageContainment = 
Public Enum IsolatedStorageContainment
Наследование
IsolatedStorageContainmentIsolatedStorageContainmentIsolatedStorageContainmentIsolatedStorageContainment
Атрибуты

Поля

AdministerIsolatedStorageByUser AdministerIsolatedStorageByUser AdministerIsolatedStorageByUser AdministerIsolatedStorageByUser 112

Неограниченные возможности администрирования для хранилища пользователя.Unlimited administration ability for the user store. Позволяет просматривать и удалять все хранилище пользователя, но доступ к чтению предоставляется только собственной идентификации домена/сборки.Allows browsing and deletion of the entire user store, but not read access other than the user's own domain/assembly identity.

ApplicationIsolationByMachine ApplicationIsolationByMachine ApplicationIsolationByMachine ApplicationIsolationByMachine 69

Хранилище изолируется сначала компьютером, а затем приложением.Storage is isolated first by computer and then by application. Таким образом обеспечивается для приложения хранение данных, доступных в контексте любого домена.This provides a data store for the application that is accessible in any domain context. Ячейка данных в приложении требует дополнительного доверия, т. к. она может привести к появлению "туннеля" между приложениями, который может вызвать нарушение изоляции данных приложений на некоторых веб-узлах.The per-application data compartment requires additional trust because it potentially provides a "tunnel" between applications that could compromise the data isolation of applications in particular Web sites.

ApplicationIsolationByRoamingUser ApplicationIsolationByRoamingUser ApplicationIsolationByRoamingUser ApplicationIsolationByRoamingUser 101

Хранилище изолируется сначала пользователем, а затем свидетельством приложения.Storage is isolated first by user and then by application evidence. Хранилище будет перемещаться, если включено перемещение данных пользователя Windows.Storage will roam if Windows user data roaming is enabled. Таким образом обеспечивается для приложения хранение данных, доступных в контексте любого домена.This provides a data store for the application that is accessible in any domain context. Ячейка данных в приложении требует дополнительного доверия, т. к. она может привести к появлению "туннеля" между приложениями, который может вызвать нарушение изоляции данных приложений на некоторых веб-узлах.The per-application data compartment requires additional trust because it potentially provides a "tunnel" between applications that could compromise the data isolation of applications in particular Web sites.

ApplicationIsolationByUser ApplicationIsolationByUser ApplicationIsolationByUser ApplicationIsolationByUser 21

Хранилище изолируется сначала пользователем, а затем приложением.Storage is isolated first by user and then by application. Хранилище также изолируется компьютером.Storage is also isolated by computer. Таким образом обеспечивается для приложения хранение данных, доступных в контексте любого домена.This provides a data store for the application that is accessible in any domain context. Ячейка данных в приложении требует дополнительного доверия, т. к. она может привести к появлению "туннеля" между приложениями, который может вызвать нарушение изоляции данных приложений на некоторых веб-узлах.The per-application data compartment requires additional trust because it potentially provides a "tunnel" between applications that could compromise the data isolation of applications in particular Web sites.

AssemblyIsolationByMachine AssemblyIsolationByMachine AssemblyIsolationByMachine AssemblyIsolationByMachine 64

Хранилище изолируется сначала компьютером, а затем сборкой кода.Storage is isolated first by computer and then by code assembly. Таким образом обеспечивается для сборки хранение данных, доступных в контексте любого домена.This provides a data store for the assembly that is accessible in any domain context. Ячейка данных в сборке требует дополнительного доверия, т. к. она может привести к появлению "туннеля" между приложениями, который может вызвать нарушение изоляции данных приложений на некоторых веб-узлах.The per-assembly data compartment requires additional trust because it potentially provides a "tunnel" between applications that could compromise the data isolation of applications in particular Web sites.

AssemblyIsolationByRoamingUser AssemblyIsolationByRoamingUser AssemblyIsolationByRoamingUser AssemblyIsolationByRoamingUser 96

Хранилище изолируется сначала пользователем, а затем свидетельством сборки.Storage is isolated first by user and then by assembly evidence. Хранилище будет перемещаться, если включено перемещение данных пользователя Windows.Storage will roam if Windows user data roaming is enabled. Таким образом обеспечивается для сборки хранение данных, доступных в контексте любого домена.This provides a data store for the assembly that is accessible in any domain context. Ячейка данных в сборке требует дополнительного доверия, т. к. она может привести к появлению "туннеля" между приложениями, который может вызвать нарушение изоляции данных приложений на некоторых веб-узлах.The per-assembly data compartment requires additional trust because it potentially provides a "tunnel" between applications that could compromise the data isolation of applications in particular Web sites.

AssemblyIsolationByUser AssemblyIsolationByUser AssemblyIsolationByUser AssemblyIsolationByUser 32

Хранилище изолируется сначала пользователем, а затем сборкой кода.Storage is isolated first by user and then by code assembly. Хранилище также изолируется компьютером.Storage is also isolated by computer. Таким образом обеспечивается для сборки хранение данных, доступных в контексте любого домена.This provides a data store for the assembly that is accessible in any domain context. Ячейка данных в сборке требует дополнительного доверия, т. к. она может привести к появлению "туннеля" между приложениями, который может вызвать нарушение изоляции данных приложений на некоторых веб-узлах.The per-assembly data compartment requires additional trust because it potentially provides a "tunnel" between applications that could compromise the data isolation of applications in particular Web sites.

DomainIsolationByMachine DomainIsolationByMachine DomainIsolationByMachine DomainIsolationByMachine 48

Хранилище изолируется сначала компьютером, а затем доменом и сборкой.Storage is isolated first by computer and then by domain and assembly. Доступ к данным может быть осуществлен только в контексте того же приложения и только при запуске на том же компьютере.Data can only be accessed within the context of the same application and only when run on the same computer. Это полезно, когда сборке сторонней организации требуется закрытое хранилище данных.This is helpful when a third-party assembly wants to keep a private data store.

DomainIsolationByRoamingUser DomainIsolationByRoamingUser DomainIsolationByRoamingUser DomainIsolationByRoamingUser 80

Хранилище изолируется сначала пользователем, а затем доменом и сборкой.Storage is isolated first by user and then by domain and assembly. Хранилище будет перемещаться, если включено перемещение данных пользователя Windows.Storage will roam if Windows user data roaming is enabled. Доступ к данным может быть осуществлен только в контексте того же приложения и только при запуске тем же пользователем.Data can only be accessed within the context of the same application and only when run by the same user. Это полезно, когда сборке сторонней организации требуется закрытое хранилище данных.This is helpful when a third-party assembly wants to keep a private data store.

DomainIsolationByUser DomainIsolationByUser DomainIsolationByUser DomainIsolationByUser 16

Хранилище изолируется сначала пользователем, а затем доменом и сборкой.Storage is isolated first by user and then by domain and assembly. Хранилище также изолируется компьютером.Storage is also isolated by computer. Доступ к данным может быть осуществлен только в контексте того же приложения и только при запуске тем же пользователем.Data can only be accessed within the context of the same application and only when run by the same user. Это полезно, когда сборке сторонней организации требуется закрытое хранилище данных.This is helpful when a third-party assembly wants to keep a private data store.

None None None None 0

Использование изолированного хранилища не допускается.Use of isolated storage is not allowed.

UnrestrictedIsolatedStorage UnrestrictedIsolatedStorage UnrestrictedIsolatedStorage UnrestrictedIsolatedStorage 240

Использование изолированного хранилища допускается без ограничения.Use of isolated storage is allowed without restriction. Код имеет полный доступ к любой части пользовательского хранилища независимо от учетной записи домена или сборки.Code has full access to any part of the user store, regardless of the identity of the domain or assembly. Такое использование изолированного хранилища включает в себя возможность перечислять содержимое изолированного хранилища данных.This use of isolated storage includes the ability to enumerate the contents of the isolated storage data store.

Примеры

В этом примере показано, как сообщить среде CLR, что код в этой сборке IsolatedStoragePermission требует, а также демонстрирует запись и чтение из изолированного хранилища.This example shows how to tell the CLR that code in this assembly requires the IsolatedStoragePermission and also demonstrates how to write and read from isolated storage.

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.

Комментарии

Изолированное хранилище использует свидетельство для определения уникальной области хранения для использования приложением или компонентом.Isolated storage uses evidence to determine a unique storage area for use by an application or component. Удостоверение сборки однозначно определяет корень виртуальной файловой системы для использования этой сборкой.The identity of an assembly uniquely determines the root of a virtual file system for use by that assembly. Таким образом, вместо многих приложений и компонентов, совместно использующих общий ресурс, такой как файловая система или реестр, каждому из них назначается собственная область файла.Thus, rather than many applications and components sharing a common resource such as the file system or registry, each has its own file area inherently assigned to it.

При назначении изолированного хранилища используются четыре основные области изоляции:Four basic isolation scopes are used when assigning isolated storage:

  • User-Code всегда ограничивается областью действия согласно текущему пользователю.User - Code is always scoped according to the current user. Одна и та же сборка будет принимать различные хранилища при запуске разными пользователями.The same assembly will receive different stores when being run by different users.

  • Machine-Code всегда ограничивается областью действия в соответствии с компьютером.Machine - Code is always scoped according to the machine. Одна и та же сборка будет принимать те же самые хранилища при запуске разных пользователей на одном компьютере.The same assembly will receive the same stores when being run by different users on the same machine.

  • Assembly-Код идентифицируется по строгому имени (например, Microsoft. Office. * или Microsoft. Office. Word), по издателю (на основе открытого ключа) по URL-адресу (например http://www.fourthcoffee.com/process/grind.htm), по сайту или по зоне).Assembly - Code is identified cryptographically by strong name (for example, Microsoft.Office.* or Microsoft.Office.Word), by publisher (based on public key), by URL (for example, http://www.fourthcoffee.com/process/grind.htm), by site, or by zone.

  • Domain— Код определяется на основе свидетельства, связанного с доменом приложения.Domain - Code is identified based on evidence associated with the application domain. Удостоверение веб-приложения основано на URL-адресе сайта или в URL-адресе, веб-сайте или зоне.Web application identity is derived from the site's URL, or by the Web page's URL, site, or zone. Локальное удостоверение кода основано на пути к каталогу приложения.Local code identity is based on the application directory path.

Определения URL-адреса, сайта и зоны см. в UrlIdentityPermissionразделе SiteIdentityPermission, и ZoneIdentityPermission.For definitions of URL, site, and zone, see UrlIdentityPermission, SiteIdentityPermission, and ZoneIdentityPermission.

Эти удостоверения группируются вместе. в этом случае удостоверения применяются один за другим до тех пор, пока не будет создано нужное изолированное хранилище.These identities are grouped together, in which case the identities are applied one after another until the desired isolated storage is created. Допустимыми группами являются "пользователь + сборка" и "пользователь + сборка + домен".The valid groupings are User+Assembly and User+Assembly+Domain. Такая группировка удостоверений полезна во многих разных приложениях.This grouping of identities is useful in many different applications.

Если данные хранятся по домену, пользователю и сборке, данные являются частными, так как только код в этой сборке может получить доступ к данным.If data is stored by domain, user, and assembly, the data is private in that only code in that assembly can access the data. Хранилище данных также изолируется приложением, в котором оно выполняется, так что сборка не представляет потенциальную утечку, предоставляя данные другим приложениям.The data store is also isolated by the application in which it runs, so that the assembly does not represent a potential leak by exposing data to other applications.

Изоляция по сборкам и пользователь может использоваться для пользовательских данных, которые применяются в нескольких приложениях; Например, сведения о лицензии или персональные данные пользователя (имя, учетные данные для проверки подлинности и т. д.), которые не зависят от приложения.Isolation by assembly and user could be used for user data that applies across multiple applications; for example, license information, or a user's personal information (name, authentication credentials, and so on) that is independent of an application.

IsolatedStorageContainmentПредоставляет флаги, определяющие, разрешено ли приложению использовать изолированное хранилище, и, если это так, какие сочетания удостоверений разрешено использовать.IsolatedStorageContainment exposes flags that determine whether an application is allowed to use isolated storage and, if so, which identity combinations are allowed to use it. Он также определяет, может ли приложение хранить информацию в расположении, которое можно перемещать с помощью пользователя (необходимо настроить перемещаемые профили пользователей Windows или перенаправление папок).It also determines whether an application is allowed to store information in a location that can roam with a user (Windows Roaming User Profiles or Folder Redirection must be configured).

Применяется к

Дополнительно