IsolatedStorageContainment 列挙型

定義

使用できる分離ストレージを指定します。Specifies the permitted use of isolated storage.

public enum class IsolatedStorageContainment
public enum IsolatedStorageContainment
[System.Serializable]
public enum IsolatedStorageContainment
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum IsolatedStorageContainment
type IsolatedStorageContainment = 
Public Enum IsolatedStorageContainment
継承
IsolatedStorageContainment
属性

フィールド

AdministerIsolatedStorageByUser 112

ユーザー ストアの無制限の管理機能。Unlimited administration ability for the user store. ユーザー ストア全体の参照と削除を許可しますが、ユーザー独自のドメイン/アセンブリ ID 以外の読み取りアクセスは許可しません。Allows browsing and deletion of the entire user store, but not read access other than the user's own domain/assembly identity.

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. アプリケーションごとのデータ コンパートメントでは、さらに信頼性が必要となります。これは、アプリケーション間に "トンネル" が発生し、特定の Web サイトでアプリケーションのデータ分離を損なう可能性があるためです。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 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. アプリケーションごとのデータ コンパートメントでは、さらに信頼性が必要となります。これは、アプリケーション間に "トンネル" が発生し、特定の Web サイトでアプリケーションのデータ分離を損なう可能性があるためです。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 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. アプリケーションごとのデータ コンパートメントでは、さらに信頼性が必要となります。これは、アプリケーション間に "トンネル" が発生し、特定の Web サイトでアプリケーションのデータ分離を損なう可能性があるためです。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 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. アセンブリごとのデータ コンパートメントでは、さらに信頼性が必要となります。これは、アプリケーション間に "トンネル" が発生し、特定の Web サイトでアプリケーションのデータ分離を損なう可能性があるためです。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 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. アセンブリごとのデータ コンパートメントでは、さらに信頼性が必要となります。これは、アプリケーション間に "トンネル" が発生し、特定の Web サイトでアプリケーションのデータ分離を損なう可能性があるためです。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 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. アセンブリごとのデータ コンパートメントでは、さらに信頼性が必要となります。これは、アプリケーション間に "トンネル" が発生し、特定の Web サイトでアプリケーションのデータ分離を損なう可能性があるためです。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 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 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 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 0

分離ストレージの使用は許可されません。Use of isolated storage is not allowed.

UnrestrictedIsolatedStorage 240

分離ストレージの使用は、制限なしに許可されます。Use of isolated storage is allowed without restriction. コードは、ドメインまたはアセンブリの ID にかかわらずユーザー ストアの任意の部分へのフル アクセスを持ちます。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.

この例では、このアセンブリ内のコードに IsolatedStoragePermission が必要であることを CLR に通知する方法を示します。また、分離ストレージの書き込みと読み取りを行う方法も示します。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. アセンブリの id によって、そのアセンブリで使用する仮想ファイルシステムのルートが一意に決定されます。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.

分離ストレージを割り当てるときは、4つの基本的な分離スコープが使用されます。Four basic isolation scopes are used when assigning isolated storage:

  • User コードは、常に現在のユーザーに基づいてスコープが設定されます。User - Code is always scoped according to the current user. 同じアセンブリが異なるユーザーによって実行されると、異なるストアを受け取ります。The same assembly will receive different stores when being run by different users.

  • Machine コードは、常にマシンに応じてスコープが設定されます。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. Web アプリケーション id は、サイトの URL、または Web ページの URL、サイト、またはゾーンから派生します。Web application identity is derived from the site's URL, or by the Web page's URL, site, or zone. ローカルコード id は、アプリケーションディレクトリパスに基づいています。Local code identity is based on the application directory path.

URL、サイト、およびゾーンの定義については、「UrlIdentityPermissionSiteIdentityPermission、および ZoneIdentityPermission」を参照してください。For definitions of URL, site, and zone, see UrlIdentityPermission, SiteIdentityPermission, and ZoneIdentityPermission.

これらの id はグループ化されています。この場合、id は、目的の分離ストレージが作成されるまで、1つずつ適用されます。These identities are grouped together, in which case the identities are applied one after another until the desired isolated storage is created. 有効なグループは、User + Assembly と User + Assembly + Domain です。The valid groupings are User+Assembly and User+Assembly+Domain. この id のグループ化は、多くの異なるアプリケーションで役立ちます。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 は、アプリケーションが分離ストレージの使用を許可されているかどうかを判断するフラグを公開します。その場合は、使用を許可する id の組み合わせを指定します。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).

適用対象

こちらもご覧ください