分離のタイプ
分離ストレージへのアクセスは、常にその分離ストレージを作成したユーザーに制限されます。 この種の分離を実装するために、共通言語ランタイムは、オペレーティング システムによって認識されるユーザー ID と同じユーザー ID、つまり、ストアを開いたときにコードを実行しているプロセスに関連付けられている ID を使用します。 この ID は認証されたユーザー ID ですが、現在のユーザーの ID は偽装によって動的に変更される場合もあります。
ユーザー別の分離に加えて、分離ストレージに対するアクセスは、アプリケーションのドメインおよびアセンブリに関連付けられた ID、またはアセンブリだけに関連付けられた ID に基づいて制限されます。 ランタイムは、これらの ID を次の方法で取得します。
ドメイン ID は、アプリケーションの証拠を表します。Web アプリケーションの場合、ドメイン ID は、完全な URL です。 シェルによってホストされるコードの場合は、ドメイン ID は、アプリケーションのディレクトリ パスが基になります。 たとえば、実行可能ファイルをパス C:\Office\MyApp.exe から実行する場合、ドメイン ID は C:\Office\MyApp.exe です。
アセンブリ ID は、アセンブリの証拠です。 アセンブリ ID は、アセンブリの暗号化デジタル署名から取得できます。アセンブリ ID は、厳密な名前、アセンブリのソフトウェア発行元、またはアセンブリの URL ID のいずれかです。 アセンブリが厳密な名前とソフトウェア発行元 ID の両方を持つ場合は、ソフトウェア発行元 ID が使用されます。 インターネットからダウンロードされ、署名されていないアセンブリの場合は、URL ID が使用されます。 アセンブリと厳密な名前の詳細については、「アセンブリを使用したプログラミング」を参照してください。
ローミング ストアは、ローミング ユーザー プロファイルを持つユーザーと共に移動します。 ファイルはネットワーク ディレクトリに書き込まれ、ユーザーがログインする任意のコンピューターにダウンロードにされます。 ローミング ユーザー プロファイルの詳細については、「IsolatedStorageScope 列挙体」を参照してください。
ユーザー ID、ドメイン ID、およびアセンブリ ID の概念を組み合わせることにより、分離ストレージは、次の 2 とおりの方法でデータを分離できます。それぞれの分離方法には、そのアクセス権限について使用法の例があります。
どちらかの分離にも、ローミング ユーザー プロファイルを組み合わせることができます。 詳細については、「分離ストレージとローミング」を参照してください。
ストアを分離する方法をさまざまなスコープで示す図を次に示します。
分離ストレージのタイプ
ローミング ストアの場合を除き、分離ストレージは、暗黙に、常にコンピューター別に分離されます。これは、分離ストレージが、所定のコンピューターに固有のストレージ機能を使用するためです。