Dies ist eine Diskussion zwischen mir und mir zu einem Isolated Storage Problem zu verstehen. Kannst du mir helfen, mich von Isolated Storage zu überzeugen?Isolierte Speicher Missverständnis
Dies ist Code, der für eine Windows Forms-Anwendung (Reader) geschrieben wurde, die den isolierten Speicher einer anderen Windows Forms-Anwendung (Schreiber) liest, die signiert ist. Wo ist die Sicherheit, wenn der Leser die Datei des Schreibers lesen kann? Ich dachte nur signierter Code kann auf die Datei zugreifen!
Wenn alle .NET-Anwendungen gleich geboren werden und alle Berechtigungen haben, auf isolierten Speicher zuzugreifen, wo ist die Sicherheit dann? Wenn ich eine EXE-Datei von Isolated Storage installieren und ausführen kann, warum ich keinen Virus installiere und ihn ausführe, werde ich vertrauensvoll auf diesen Bereich zugreifen. Aber der Virus oder was auch immer nicht vertrauenswürdig sein wird, um auf den Rest des Dateisystems zuzugreifen, kann nur auf den Speicher zugreifen, und das ist gefährlich genug.
Ich sehe keinen Unterschied zwischen der Verwendung des Anwendungsdatenordners, um den Status zu speichern, und der Verwendung von Isolated Storage außer einem langen, unangenehmen Pfad !!
Ich möchte versuchen, Lesercode zu geben und Test zu wiederholen, aber sie sagten, dass "Isolierter Speicher tatsächlich geschaffen wird, um niedrig vertrauenswürdiger Anwendung das Recht zu geben, seinen Zustand zu speichern".
Reader Code:
private void button1_Click(object sender, EventArgs e)
{
String path = @"C:\Documents and Settings\All Users\Application Data\IsolatedStorage\efv5cmbz.ewt\2ehuny0c.qvv\StrongName.5v3airc2lkv0onfrhsm2h3uiio35oarw\AssemFiles\toto12\ABC.txt";
StreamReader reader = new StreamReader(path);
var test = reader.ReadLine();
reader.Close();
}
Verfasser:
private void button1_Click(object sender, EventArgs e)
{
IsolatedStorageFile isolatedFile = IsolatedStorageFile.GetMachineStoreForAssembly();
isolatedFile.CreateDirectory("toto12");
IsolatedStorageFileStream isolatedStorage = new IsolatedStorageFileStream(@"toto12\ABC.txt", System.IO.FileMode.Create, isolatedFile);
StreamWriter writer = new StreamWriter(isolatedStorage);
writer.WriteLine("Ana 2akol we ashrab kai a3eesh wa akbora");
writer.Close();
writer.Dispose();
}
Noch immer besteht kein Unterschied zwischen dem Speichern der Datei mit App-Daten und isoliertem Speicher, da Sie standardmäßig Dateien ohne Genehmigung im App-Datenordner speichern können. – Costa
Hmmm ... Sie scheinen immer noch den Punkt ein wenig zu verpassen? IsolatedStorage ist für die Verwendung mit Silverlight-Apps mit geringem Vertrauen gedacht, die keinen offenen Zugriff auf das Dateisystem haben, wie in Ihrem Dateilesecode dargestellt. Überprüfen Sie meine Änderungen auf ein paar nützliche Links. – slugster