【问题标题】:IsolatedStorage Not Working With IE Protected Mode? C#隔离存储无法使用 IE 保护模式? C#
【发布时间】:2011-03-05 22:21:50
【问题描述】:

使用 IsolatedStorage 和 IE 保护模式

我正在构建一个 C# .NET (VS2010) IE8 附加应用程序,但在 Windows 7 64 位计算机上使用独立存储保存数据时遇到了一些问题,Internet Explorer 的默认保护模式为已启用。

(我正在从使用 Settings as Properties.Settings.Default.Save() 切换到此方法;在 IE 保护模式下也失败了。我也尝试在 LocalLow 中保存文件,但也没有运气。)

谁能指出我如何修改以下代码以使其能够在 IE 保护模式下工作?我尝试了很多想法,但到目前为止没有任何效果。肯定有办法保存数据??

//FileIOPermission perm = new FileIOPermission(PermissionState.Unrestricted); 
    //perm.Assert(); 
    //perm.Demand();  

//---Write---
IsolatedStorageFile app_isoStore = IsolatedStorageFile.GetStore(
    IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);
IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream(
    "app_started.txt", FileMode.OpenOrCreate, FileAccess.Write, app_isoStore);

StreamWriter iswriter = new StreamWriter(isoStream);
iswriter.WriteLine("Run");
iswriter.Close();

//app_isoStore.Dispose();
app_isoStore.Close();

//---Read---
IsolatedStorageFile app_isoStoreCheck = IsolatedStorageFile.GetStore(
    IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);
IsolatedStorageFileStream isoReadStream = new IsolatedStorageFileStream(
    "app_started.txt", FileMode.Open, FileAccess.Read, app_isoStoreCheck);

StreamReader isreader = new StreamReader(isoReadStream);
string rdata = isreader.ReadToEnd();
isreader.Close();

//app_isoStoreCheck.Dispose();
app_isoStoreCheck.Close();

【问题讨论】:

  • 我完全按照您在示例中编写的代码复制了您的代码,并且运行良好。它从文件中读取值“运行”。如果我关闭程序,注释掉写入的部分,然后再次运行程序以读取数据,它也可以工作。按预期工作。尝试单步执行您的程序以验证它是否正常工作。
  • 等等,你说的是“IE8 应用程序”。这是网络服务吗?我把我的作为一个独立的控制台程序。我想可能有一些不同。我没有办法轻松地将其作为 Web 服务或 ASP.NET 页面或其他任何方式进行测试。
  • 感谢您的测试。我尝试在每一行之后放置一个输出并且它没有调用异常,所以它看起来好像应该有效。我只是不明白为什么它没有。

标签: c# .net permissions save isolatedstorage


【解决方案1】:

您没有提供任何证据论据。

您是否尝试过以下重载而不是 GetStore

  • GetUserStoreForApplication
  • GetUserStoreForUser
  • GetUserStoreForDomain
  • GetMachineStoreForApplication
  • GetMachineStoreForUser
  • GetMachineStoreForDomain

您使用的是什么操作系统?您使用的是哪个版本的 .NET?您在什么文件系统类型上执行此操作?你是机器的管理员吗?机器上的 IsolatedStorage 策略是什么?是否启用?每个用户有多少空间?

您能观察到在相应目录中创建的app_started.txt 文件吗?如果不是,那么您可能还有权限问题... NTFS ACL 等...

http://msdn.microsoft.com/en-us/library/3ak841sy(v=vs.80).aspx

只是一些建议。

HTH

【讨论】:

  • 感谢您的回复。我正在使用 .NET Framework 4.0。 GetUserStoreForUser() 因异常而失败。未创建文件。该问题发生在 NTFS 64 位 Windows 7 机器上。我没有研究该策略,因为我才刚刚开始使用 IsolatedStorage,因为有人告诉我这是一种始终有效的方法,我应该切换到它,而不是使用已证明无法在默认值下运行的 Visual Studio 设置方法IE 保护模式。
  • IsolatedStorage 并不总是有效。用户可以屏蔽它,以及其他原因。
猜你喜欢
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-08
相关资源
最近更新 更多