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 IsolatedStorageFile, die von IsolatedStorage abgeleitet wird, können gespeicherte Assembly- und Anwendungsdateien verwaltet werden. Eine Instanz der IsolatedStorageFile-Klasse stellt einen einzelnen Speicher im Dateisystem dar.
IsolatedStorageFileStream, die aus System.IO.FileStream abgeleitet wird, ermöglicht den Zugriff auf Dateien in einem Speicher.
Bei IsolatedStorageScope handelt es sich um eine Enumeration, mit der ein Speicher mit einem entsprechenden Isolationstyp erstellt und ausgewählt werden kann.
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 |
---|---|
Beschreibt verschiedene Isolationstypen. |
|
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. |
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. |
Erläutert, wie Sie einen synchronen und asynchronen Datei- und Datenstreamzugriff ausführen können. |
Zurück nach oben