从IsolatedStorage中不受限制地获取数据

本文关键字:获取 数据 受限制 IsolatedStorage | 更新日期: 2023-09-27 18:04:49

我试着测试一个wpf应用程序的隔离存储,我想要从两个应用程序中为相同的隔离存储getData和InsertData。我尝试了不同的getStore(…),但没有工作。

 IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.Machine | IsolatedStorageScope.Assembly, null, null);

private static void LoadData()
    {
        IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.Machine | IsolatedStorageScope.Assembly, null, null);
        if (isoStore.GetFileNames(filename).Length == 0)
        {
            // File not exists. Let us NOT try to DeSerialize it.        
            return;
        }
        // Read the stream from Isolated Storage.    
        Stream stream = new IsolatedStorageFileStream(filename, FileMode.OpenOrCreate, isoStore);
        if (stream != null)
        {
            try
            {
                // DeSerialize the Dictionary from stream.            
                IFormatter formatter = new BinaryFormatter();
                Dictionary<string, Object> appData = (Dictionary<string, Object>)formatter.Deserialize(stream);
                // Enumerate through the collection and load our Dictionary.            
                IDictionaryEnumerator enumerator = appData.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    appDictionary[enumerator.Key.ToString()] = enumerator.Value;
                }
            }
            finally
            {
                stream.Close();
            }
        }
    }

问候,马修

从IsolatedStorage中不受限制地获取数据

如果你仔细阅读一下你正在使用的技术,你就会明白为什么你不能访问其他用户的数据…线索就在它的名字里:隔离存储。MSDN上的隔离类型页面:

对隔离存储的访问始终限制在创建该存储的用户。

通过结合用户、域和程序集标识的概念,隔离存储可以通过以下方式隔离数据,每种方式都有自己的使用场景:

•按用户和组件进行隔离
•按用户、域和程序集进行隔离

有关详细信息,请参阅MSDN上的隔离存储页面。