分離ストレージの概要
アプリケーションでファイルにデータを格納する場合は、ファイル名とストレージの場所を慎重に選択して、ストレージの場所がほかのアプリケーションに知られたり、無防備に破壊されたりする可能性を最小限に抑える必要があります。このような問題を管理するための標準的なシステムが適切な場所に用意されていないと、ストレージの問題点を最小限に抑える特別な技術の開発が複雑になり、信頼できる結果が得られません。
分離ストレージを使用すると、データは常にユーザーおよびアセンブリ別に分離されます。アセンブリの発生元または厳密な名前などの資格情報によって、アセンブリの ID が決定されます。また、同様の資格情報を使用して、データをアプリケーション ドメイン別に分離することもできます。
分離ストレージを使用している場合、アプリケーションはコードの ID のいくつかの側面 (Web サイト、発行元、署名など) に関連付けられた固有のデータ コンパートメントにデータを保存します。データ コンパートメントは抽象概念であり、特定の記憶場所ではありません。データ コンパートメントは、データが格納される実際のディレクトリ位置が含まれている、ストアと呼ばれる 1 つ以上の分離ストレージ ファイルで構成されています。たとえば、Web アプリケーションがそのアプリケーションに関連付けられたデータ コンパートメントを持ち、ファイル システムのディレクトリがそのアプリケーションのデータを実際に保存するストアを実装します。ストアには、ユーザー設定情報からアプリケーション状態まで、どのような種類のデータでも保存できます。開発者にとって、データ コンパートメントの場所は明確ではありません。通常、ストアはクライアントに常駐しますが、サーバー アプリケーションがユーザーを偽装することによって機能し、分離ストアを使用して情報を格納することもあります。また、サーバー上の分離ストレージには、情報と共にユーザーのローミング プロファイルを格納できます。これにより、情報はローミング ユーザーと共に移動します。
管理者は、適切な信頼レベルに基づいて、アプリケーションやユーザーが利用できる分離ストレージの容量を制限できます。また、管理者は、ユーザーの永続的なデータのすべてを削除できます。分離ストレージを作成またはアクセスするには、適切な IsolatedStorageFilePermission を持っている必要があります。
分離ストレージにアクセスするには、必要なすべてのネイティブ プラットフォーム オペレーティング システム権限が必要です。たとえば、Windows 2000 では、どのユーザーにファイル システムを使用する権限を与えるかを制御するアクセス制御リスト (ACL: Access Control List) の要件を満たしている必要があります。Microsoft .NET Framework のアプリケーションには、分離ストレージにアクセスするためのオペレーティング システム権限が既にあります。ただし、アプリケーションがプラットフォーム固有の偽装を行っていない場合だけです。偽装している場合は、アプリケーションが偽装しているユーザー ID に対して分離ストレージにアクセスするための適切なオペレーティング システム権限が与えられていることをアプリケーションで確認する責任があります。偽装によるアクセスは、Web から実行またはダウンロードされたコードで、特定のユーザーに関連付けられたストレージ領域の読み取りや書き込みを行う場合には都合のよい方法です。
オペレーティング システムのファイル システムを使用して分離ストレージの変化を検査すると役立つ場合があります。また、開発者が分離ストレージ ファイルの場所を知る必要がある場合もあります。分離ストレージ ファイルの場所は、オペレーティングによって異なります。いくつかの一般的なオペレーティング システムで、分離ストレージが作成されるルート位置を次の表に示します。このルート位置の下の Microsoft\IsolatedStorage のディレクトリを検索してください。ファイル システムの分離ストレージを表示するには、隠しファイルやフォルダが表示されるようにフォルダの設定を変更する必要があります。
オペレーティング システム | ファイル システム上の位置 |
---|---|
Windows 98、Windows ME - ユーザー プロファイルは使用不可 |
ローミングに対応したストア = <SYSTEMROOT>\Application Data ローミングに対応しないストア = WINDOWS\Local Settings\Application Data |
Windows 98、Windows ME - ユーザー プロファイルは有効 |
ローミングに対応したストア = <SYSTEMROOT>\Profiles\<user>\Application Data ローミングに対応しないストア = Windows\Local Settings\Application Data |
Windows NT 4.0 |
<SYSTEMROOT>\Profiles\<user>\Application Data |
Windows NT 4.0 - Service Pack 4 |
ローミングに対応したストア = <SYSTEMROOT>\Profiles\<user>\Application Data ローミングに対応しないストア = <SYSTEMROOT>\Profiles\<user>\Local Settings\Application Data |
Windows 2000、Windows XP、Windows Server 2003 - NT 4.0 からのアップグレード |
ローミングに対応したストア = <SYSTEMROOT>\Profiles\<user>\Application Data ローミングに対応しないストア = <SYSTEMROOT>\Profiles\<user>\Local Settings\Application Data |
Windows 2000 - クリーン インストール (および Windows 98 と NT 3.51 からのアップグレード) |
ローミングに対応したストア = <SYSTEMDRIVE>\Documents and Settings\<user>\Application Data ローミングに対応しないストア = <SYSTEMDRIVE>\Documents and Settings\<user>\Local Settings\Application Data |
Windows XP、Windows Server 2003 - クリーン インストール (および Windows 2000 と Windows 98 からのアップグレード) |
ローミングに対応したストア = <SYSTEMDRIVE>\Documents and Settings\<user>\Application Data ローミングに対応しないストア = <SYSTEMDRIVE>\Documents and Settings\<user>\Local Settings\Application Data |