隔离存储无法使用 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

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 并不总是有效。用户可以屏蔽它,以及其他原因。

以上是关于隔离存储无法使用 IE 保护模式? C#的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IE 保护模式下抑制警告

检测进程是不是由 IE 在保护模式下启动

检查 Internet Explorer 保护模式

在保护模式下读取键盘

Dataphin产品核心功能大图发布中心:生产和开发隔离模式下的保护伞

selenium webdriver在 ie 中无法定位元素和ie文本框字符输入过慢