Freigeben über


Isolierte Speicherung

Isolierte Speicherung ist ein Mechanismus zur Datenspeicherung, der Isolation und Sicherheit gewährleistet. Dies wird durch die Definition standardisierter Verknüpfungen von Code mit gespeicherten Daten ermöglicht. Die Standardisierung hat weitere Vorteile. Administratoren können spezielle Tools zum Ändern isolierter Speichervorgänge verwenden, um Speicherplätze für Dateien zu konfigurieren, Sicherheitsrichtlinien festzulegen und nicht verwendete Daten zu löschen. Dank isolierter Speicherung benötigt der Code keine eindeutigen Pfade zur Festlegung sicherer Speicherplätze im Dateisystem. Außerdem werden die Daten vor anderen Anwendungen geschützt, die nur über Zugriff auf isolierte Speicherplätze verfügen. Fest codierte Daten, die den Speicherbereich einer Anwendung angeben, sind nicht erforderlich.

Dieses Thema enthält folgende Abschnitte:

  • Datendepots und -speicher

  • Sicherer Zugriff

  • Isolierte Speicherorte

  • Erstellen, Auflisten und Löschen von isoliertem Speicher

  • Szenarien für die isolierte Speicherung

  • Verwandte Themen

  • Verweis

Datendepots und -speicher

Wenn eine Anwendung Daten in einer Datei speichert, müssen Dateiname und Speicherplatz sorgfältig ausgewählt werden, um weitestgehend zu verhindern, dass der Speicherplatz einer anderen Anwendung zugänglich und damit anfällig für Datenbeschädigungen wird. Ohne die Verwendung eines Standardsystems zur Behebung solcher Probleme kann die Entwicklung von Ad-hoc-Techniken zur Minimierung von Speicherkonflikten sehr komplex sein und zu unzuverlässigen Ergebnissen führen.

Bei der isolierten Speicherung werden die Daten immer nach Benutzer oder nach Assembly isoliert. Informationen wie der Ursprung oder der starke Name der Assembly bestimmen die Identität der Assembly. Daten können auch nach Anwendungsdomäne isoliert werden, wobei ähnliche Informationen verwendet werden.

Bei der isolierten Speicherung werden die Daten von einer Anwendung in einem eindeutigem Datendepot gespeichert, das einigen Aspekten der Identität des Codes zugeordnet ist, beispielsweise dem zugehörigen Verleger oder der zugehörigen Signatur. Das Datendepot ist abstrakt und stellt keinen spezifischen Speicherplatz dar. Es besteht aus einer oder mehreren Dateien der isolierten Speicherung, so genannten Speichern. Diese enthalten den tatsächlichen Verzeichnisort, an dem die Daten gespeichert sind. So kann z. B. einer Anwendung ein Datendepot zugeordnet sein. In diesem Fall ist es das Verzeichnis im Dateisystem, das den Speicher implementiert. Dort sind die Daten dieser Anwendung gespeichert. In diesem Speicher können beliebige Daten gespeichert werden, z. B. Informationen zur Benutzereinstellung oder der Anwendungszustand. Für den Entwickler ist der Speicherplatz des Datendepots transparent; Speicher befinden sich normalerweise auf dem Client. Jedoch könnte eine Serveranwendung isolierte Speicher zum Speichern von Informationen verwenden, indem die Identität des Benutzers imitiert wird, unter dessen Namen die Anwendung läuft. Mit isolierter Speicherung können Daten auf einem Server mit einem Roamingbenutzerprofil gespeichert werden. Dadurch wandern die Daten mit dem Benutzer mit.

Zurück nach oben

Sicherer Zugriff

Durch isolierte Speicherung können Daten von teilweise vertrauenswürdigen Anwendungen so gespeichert werden, dass eine Kontrolle durch die Sicherheitsrichtlinien des Computers gewährleistet ist. Dies ist besonders für heruntergeladene Komponenten von Nutzen, bei deren Ausführung Vorsicht geboten ist. Sicherheitsrichtlinien gewähren selten die Art von Codeberechtigung für den Zugriff auf das Dateisystem mit standardmäßigen E/A-Mechanismen. Code, der vom lokalen Computer, von einem lokalen Netzwerk oder über das Internet ausgeführt wird, erhält jedoch standardmäßig die Berechtigung zur Verwendung von isoliertem Speicher.

Administratoren können auf Basis einer entsprechenden Vertrauensebene festlegen, wie viel isolierter Speicherplatz einer Anwendung oder einem Benutzer zur Verfügung steht. Darüber hinaus können Administratoren die gespeicherten Daten eines Benutzers vollständig löschen. Um isolierten Speicherplatz erstellen oder darauf zugreifen zu können, muss dem Code die entsprechende IsolatedStorageFilePermission erteilt werden.

Für den Zugriff auf isolierten Speicherplatz muss der Code über alle notwendigen systemeigenen Rechte der Betriebssystemplattform verfügen. Ein Beispiel: Unter Windows 2000 müssen die Bedingungen der Zugriffssteuerungslisten erfüllt sein. Diese legen fest, welche Benutzer zur Verwendung des Dateisystems berechtigt sind. .NET Framework-Anwendungen verfügen bereits über Betriebssystemrechte für den Zugriff auf isolierten Speicherplatz, sofern sie keine (plattformspezifische) Imitation ausführen. In diesem Fall ist die Anwendung dafür zuständig, dass die imitierte Benutzeridentität über die entsprechenden Rechte des Betriebssystems verfügt, um auf den isolierten Speicherplatz zuzugreifen. Mithilfe dieses Zugriffs kann aus dem Web ausgeführter bzw. heruntergeladener Code auf einfache Weise aus dem Speicherbereich, der einem bestimmten Benutzer zugeordnet ist, lesen bzw. in diesen schreiben.

Zurück nach oben

Isolierte Speicherorte

Gelegentlich sollten Änderungen an isolierten Speicherplätzen mit dem Dateisystem des Betriebssystems überprüft werden. In einigen Fällen ist es für Entwickler wichtig zu wissen, wo die Dateien im isolierten Speicherplatz gespeichert sind. Der Speicherort hängt vom Betriebssystem ab. Die folgende Tabelle gibt für einige geläufige Betriebssysteme die Stammorte an, an denen isolierter Speicherplatz erstellt wird. Suchen Sie in diesem Stammort nach Microsoft\IsolatedStorage-Verzeichnissen. Zum Anzeigen versteckter Dateien und Ordner müssen die Ordnereinstellungen geändert werden, sodass isolierte Speicherplätze im Dateisystem angezeigt werden können.

Betriebssystem

Speicherplatz im Dateisystem

Windows 98, Windows ME - Benutzerprofile nicht aktiviert

Für Roaming aktivierte Speicher =

<SYSTEMSTAMM>\Anwendungsdaten

Nicht für Roaming eingerichtete Speicher = WINDOWS\Lokale Einstellungen\Anwendungsdaten

Windows 98, Windows ME - Benutzerprofile aktiviert

Für Roaming aktivierte Speicher =

<SYSTEMSTAMM>\Profile\<Benutzer>\Anwendungsdaten

Nicht für Roaming eingerichtete Speicher = Windows\Lokale Einstellungen\Anwendungsdaten

Windows NT 4.0

<SYSTEMSTAMM>\Profile\<Benutzer>\Anwendungsdaten

Windows NT 4.0 - Service Pack 4

Für Roaming aktivierte Speicher =

<SYSTEMSTAMM>\Profile\<Benutzer>\Anwendungsdaten

Nicht für Roaming eingerichtete Speicher =

<SYSTEMSTAMM>\Profile\<Benutzer>\Lokale Einstellungen\Anwendungsdaten

Windows 2000, Windows XP, Windows Server 2003 – Upgrade von Windows NT 4.0

Für Roaming aktivierte Speicher =

<SYSTEMSTAMM>\Profile\<Benutzer>\Anwendungsdaten

Nicht für Roaming eingerichtete Speicher =

<SYSTEMSTAMM>\Profile\<Benutzer>\Lokale Einstellungen\Anwendungsdaten

Windows 2000 – Neuinstallation (und Upgrades von Windows 98 und Windows NT 3.51)

Für Roaming aktivierte Speicher =

<SYSTEMLAUFWERK>\Dokumente und Einstellungen\<Benutzer>\Anwendungsdaten

Nicht für Roaming eingerichtete Speicher =

<SYSTEMLAUFWERK>\Dokumente und Einstellungen\<Benutzer>\Lokale Einstellungen\Anwendungsdaten

Windows XP, Windows Server 2003 – Neuinstallation (und Upgrades von Windows 2000 und Windows 98)

Für Roaming aktivierte Speicher =

<SYSTEMLAUFWERK>\Dokumente und Einstellungen\<Benutzer>\Anwendungsdaten

Nicht für Roaming eingerichtete Speicher =

<SYSTEMLAUFWERK>\Dokumente und Einstellungen\<Benutzer>\Lokale Einstellungen\Anwendungsdaten

Windows Vista

Für Roaming aktivierte Speicher =

<SYSTEMDRIVE>\Users\<user>\AppData\Roaming

Nicht für Roaming eingerichtete Speicher =

<SYSTEMDRIVE>\Users\<user>\AppData\Local

Zurück nach oben

Erstellen, Auflisten und Löschen von isoliertem Speicher

Es stehen drei Hauptklassen zur Verfügung, mit denen Sie Aufgaben in Zusammenhang mit isolierter Speicherung ausführen können:

Mit den Klassen der isolierten Speicherung können Sie isolierte Speicherplätze erstellen, auflisten und löschen. Die Methoden zur Ausführung dieser Aufgaben sind über das IsolatedStorageFile-Objekt verfügbar. Für einige Operationen benötigen Sie zum Verwalten isolierter Speicher die Berechtigung IsolatedStorageFilePermission. Für den Zugriff auf die Datei oder das Verzeichnis benötigen Sie gegebenenfalls auch Betriebssystemrechte. Unter Microsoft Windows NT, Microsoft Windows 2000, Windows XP und Windows Vista kann durch die Einstellungen der Zugriffssteuerungsliste verhindert werden, dass auf die isolierte Speicherung zugegriffen werden kann. Das Isolated Storage-Tool Storeadm.exe kann auch für einfache Aufgaben bei der Speicherverwaltung verwendet werden, z. B. zum Auflisten oder Löschen aller Speicher des aktuellen Benutzers.

Eine Reihe von Beispielen, die allgemeine isolierte Speicheraufgaben veranschaulichen, finden Sie in den Gewusst-wie-Themen in Verwandte Themen. Jedes Beispiel verfügt über eine Quelldatei, die eine bestimmte Aufgabe veranschaulicht. Anweisungen für das Einrichten, Kompilieren und Ausführen sind auf der Hauptseite des jeweiligen Beispiels enthalten. Die Beispiele stehen nur in C# zur Verfügung.

Zurück nach oben

Szenarien für die isolierte Speicherung

Isolierte Speicherung kann in vielen Situationen von Nutzen sein. Fünf der offenkundigsten Szenarien werden im Folgenden beschrieben:

  • Heruntergeladene Steuerelemente. Aus dem Internet heruntergeladene Steuerelemente für verwalteten Code sind nicht berechtigt, über normale E/A-Klassen auf die Festplatte zu schreiben. Allerdings können sie mithilfe von isolierter Speicherung die Einstellungen eines Benutzers sowie den Anwendungszustand speichern.

  • Speicher für gemeinsame Komponenten. Von Anwendungen gemeinsam verwendete Komponenten können mithilfe von isolierter Speicherung einen kontrollierten Zugriff auf Datenspeicher bereitstellen.

  • Speicher auf dem Server. Serveranwendungen können isolierte Speicherung verwenden, um einzelne Speicher für eine große Zahl von Benutzern bereitzustellen, die Anforderungen an die Anwendung richten. Da isolierte Speicherplätze auf die einzelnen Benutzer verteilt werden, muss der Server den anfordernden Benutzer imitieren. In diesem Fall werden Daten auf Basis der Identität des Principals isoliert, bei der es sich um dieselbe Identität handelt, anhand derer die Anwendung Benutzer voneinander unterscheidet.

  • Roaming. Anwendungen können isolierte Speicherplätze auch mit Roamingbenutzerprofilen verwenden. Dadurch können die isolierten Speicher eines Benutzers wie die Profile von überall zugänglich sein.

Obwohl sich isolierte Speicherung für die beschriebenen Szenarien gut eignet, sollte sie in einigen Fällen auf keinen Fall verwendet werden:

  • Verwenden Sie keinen isolierten Speicher, um hochsensible Daten wie unverschlüsselte Schlüssel oder Kennwörter zu speichern, da isolierte Speicherplätze nicht vor hoch vertrauenswürdigem Code, nicht verwaltetem Code bzw. vor vertrauenswürdigen Benutzern des Computers geschützt sind.

  • Speichern Sie Code nicht mithilfe von isoliertem Speicher.

  • Verwenden Sie keine isolierten Speicher, um Konfigurations- und Bereitstellungseinstellungen zu speichern. Diese werden vom Administrator gesteuert. (Benutzereinstellungen gelten nicht als Konfigurationseinstellungen, da sie nicht vom Administrator gesteuert werden.)

Viele aktuelle Anwendungen verwenden Datenbanken zur Speicherung und Isolation von Daten, wobei eine oder mehrere Zeilen einer Datenbank den Speicherplatz für einen bestimmten Benutzer darstellen. Sie können in folgenden Fällen gegebenenfalls isolierte Speicherung anstelle einer Datenbank verwenden: bei geringer Benutzerzahl, bei beträchtlichem Verwaltungsaufwand durch Verwendung einer Datenbank oder wenn keine Datenbankfunktion zur Verfügung steht. Wenn eine Anwendung zudem Speicherplatz benötigt, der flexibler und komplexer ist als die Zeilen einer Datenbank, bietet isolierte Speicherung eine gute Alternative.

Zurück nach oben

Verwandte Themen

Titel

Beschreibung

Isolationstypen

Beschreibt verschiedene Isolationstypen.

Gewusst wie: Erhalten von Speichern für isolierten Speicher

Stellt ein Beispiel für die Verwendung der IsolatedStorageFile-Klasse bereit, um einen nach Benutzer und Assembly isolierten Speicher abzurufen.

Gewusst wie: Auflisten von Speichern für isolierten Speicherung

Zeigt, wie mithilfe der IsolatedStorageFile.GetEnumerator-Methode die Größe des gesamten isolierten Speichers für den Benutzer berechnet wird.

Gewusst wie: Löschen von Speichern im isolierten Speicher

Zeigt, wie mit der IsolatedStorageFile.Remove-Methode isolierte Speicher auf zwei unterschiedliche Arten gelöscht werden.

Gewusst wie: Vorhersehen von Speicherengpässen bei isoliertem Speicher

Zeigt, wie der restliche Speicherplatz in einem isolierten Speicher ermittelt wird.

Gewusst wie: Erstellen von Dateien und Verzeichnissen in isoliertem Speicher

Einige Beispiele für das Erstellen von Dateien und Verzeichnissen in einem isolierten Speicher.

Gewusst wie: Suchen von vorhandenen Dateien und Verzeichnissen im isolierten Speicher

Zeigt, wie die Verzeichnisstruktur und die Dateien bei isolierter Speicherung gelesen werden.

Gewusst wie: Lesen bzw. Schreiben von Dateien im isolierten Speicher

Beispiel dafür, wie eine Zeichenfolge in ein IsolatedStorageFile-Objekt geschrieben und von dort gelesen wird.

Gewusst wie: Löschen von Dateien und Verzeichnissen in isoliertem Speicher

Beschreibt das Löschen von Dateien und Verzeichnissen der isolierten Speicherung.

Datei- und Stream-E/A

Erläutert, wie Sie einen synchronen und asynchronen Datei- und Datenstreamzugriff ausführen können.

Zurück nach oben

Verweis

System.IO.IsolatedStorage.IsolatedStorage