隔离存储无法使用 IE 保护模式? C#
Posted
技术标签:
【中文标题】隔离存储无法使用 IE 保护模式? C#【英文标题】:IsolatedStorage Not Working With IE Protected Mode? 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 页面或其他任何方式进行测试。 感谢您的测试。我尝试在每一行之后放置一个输出并且它没有调用异常,所以它看起来好像应该有效。我只是不明白为什么它没有。 【参考方案1】:您没有提供任何证据论据。
您是否尝试过以下重载而不是 GetStore
:
您使用的是什么操作系统?您使用的是哪个版本的 .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 并不总是有效。用户可以屏蔽它,以及其他原因。以上是关于隔离存储无法使用 IE 保护模式? C#的主要内容,如果未能解决你的问题,请参考以下文章