繁体   English   中英

如何以IE保护模式(从托管BHO)访问AppData

[英]How to Access AppData in IE Protected Mode (from a Managed BHO)

我正在用C#编写IE扩展(BHO)。 当以保护模式运行(IE的新UAC兼容模式,该模式强制所有扩展以低完整性运行)时,它将失败,因为它无法访问appdata文件夹中的user.config。

有什么方法可以将文件标记为低完整性进程可读?

如果失败,是否有某种方法可以迫使BHO以中等级别的完整性运行?

如果失败,是否有某种方法可以在低完整性文件夹中创建低完整性符号链接,该链接指向AppData中的中完整性文件?

失败了,是否有某种方法可以强制应用程序使用LocalLow文件夹中的user.config文件? 如何在.net中获取此文件夹的路径(未在Environment.SpecialFolder下列出)? 我能否在不丢失所有user.config数据的情况下回退到运行XP的用户或关闭保护模式的用户?

有一种方法不是特别优雅,但是您可以启动具有中等级别完整性的另一个(代理)过程,该过程可以完成“肮脏的工作”并使用IPC与之通信。 为了使您的生活更轻松,我建议您使用套接字进行通信,因为它们不需要安全检查,当您在具有不同完整性级别的进程之间进行通信时,这很棘手。

为了在生成新进程时跳过UAC警告,可以修改BHO注册脚本并添加一些注册表值,这些值将通知IE将新进程静默提升到中等级别。

您可以在这里找到更多信息: http : //msdn.microsoft.com/zh-cn/library/bb250462(VS.85).aspx#wpm_elebp

在RegisterBHO期间,您将获得一键式特权访问。 之后,您将进入保护模式。

如果您需要在BHO的运行期间更改长期存储,我发现注册表是最好的地方。 您所做的更改仅对您可见,但它们将保持不变。

我建议您编写自己的SettingsProvider,将其保存在System.IO.IsolatedStorage中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM