Windows 7开发:用户帐户管理数据重定向(写入受保护的资源)
2011-09-20 16:16
731 查看
http://www.bianceng.cn/Programming/net/201104/26176.htm
您可能遇到过下面的一种或多种情况:
• 您的应用程序写入Program Files ,Windows目录,或者系统根(一般是C盘)文件夹,但是您在这些地方并没有找到您的文件
• 您的应用程序写入Windows注册表,特别是HKLM/Software中,但是您没有看 到注册表进行了更新
• 您切换到了另一个帐户,并且您的应用程序没有办法找 到已写入Program Files,Windows目录,或者系统根(一般是C盘)文件夹的文件,或者找到 了这些文件的老版本
• 在启用或禁用用户帐户控制(UAC)后,您的应用程序都 没有办法找到Program Files或Windows目录中的文件
如果这些出现在了您的应用程序 中,都是由于UAC虚拟化的原因。下面所提供的信息为您介绍了所有关于发现这个应用程序兼 容性问题,解决方案,以及特殊兼容性问题的一些附加信息。
真正的问题:UAC 虚拟 化
在Windows Vista中,一般由管理员来运行应用程序。这样,应用程序可以自由的 读写系统文件和注册表的值。如果标准用户可以运行这些应用程序,那他们可能会由于没有 足够的权限而导致失败。Windows Vista通过重定向写入(以及后续文件或者注册表操作)对 应用户的配置文件(profile)位置,来对标准用户运行应用程序的能力进行了提升。
例如,如果一个应用程序试图写入C:\Program Files\Contoso\Settings.ini,并且用户 没有权限来对该文件夹进行写入操作,写入操作将会被重定向到C:\Users \Username\AppData\Local\VirtualStore\Program Files\Contoso\settings.ini。如果应用 程序试图在注册表中写入HKEY_LOCAL_MACHINE\Software \Contoso\,这将会被自动重定向到 HKEY_CURRENT_USER\Software\Classes\VirtualStore
\MACHINE\Software\Contoso或 HKEY_USERS\UserSID_Classes\VirtualStore \Machine\Software\Contoso。
下图显示了Windows 虚拟化进程的两个组件:文件虚拟化和注册表虚拟化
重要注意
当为Windows Vista开发应用程序时,请确定在对应的requestedExecutionLevel元素 中嵌入应用程序清单文件。这将会关闭文件和注册表虚拟化,减少虚拟化的文件和注册表值 的复杂性。
更多关于UAC虚拟化和新UAC技术,请参阅“Windows Vista中的新 UAC技术”http://msdn.microsoft.com/en-us/library/bb756960.aspx .
您可能遇到过下面的一种或多种情况:
• 您的应用程序写入Program Files ,Windows目录,或者系统根(一般是C盘)文件夹,但是您在这些地方并没有找到您的文件
• 您的应用程序写入Windows注册表,特别是HKLM/Software中,但是您没有看 到注册表进行了更新
• 您切换到了另一个帐户,并且您的应用程序没有办法找 到已写入Program Files,Windows目录,或者系统根(一般是C盘)文件夹的文件,或者找到 了这些文件的老版本
• 在启用或禁用用户帐户控制(UAC)后,您的应用程序都 没有办法找到Program Files或Windows目录中的文件
如果这些出现在了您的应用程序 中,都是由于UAC虚拟化的原因。下面所提供的信息为您介绍了所有关于发现这个应用程序兼 容性问题,解决方案,以及特殊兼容性问题的一些附加信息。
真正的问题:UAC 虚拟 化
在Windows Vista中,一般由管理员来运行应用程序。这样,应用程序可以自由的 读写系统文件和注册表的值。如果标准用户可以运行这些应用程序,那他们可能会由于没有 足够的权限而导致失败。Windows Vista通过重定向写入(以及后续文件或者注册表操作)对 应用户的配置文件(profile)位置,来对标准用户运行应用程序的能力进行了提升。
例如,如果一个应用程序试图写入C:\Program Files\Contoso\Settings.ini,并且用户 没有权限来对该文件夹进行写入操作,写入操作将会被重定向到C:\Users \Username\AppData\Local\VirtualStore\Program Files\Contoso\settings.ini。如果应用 程序试图在注册表中写入HKEY_LOCAL_MACHINE\Software \Contoso\,这将会被自动重定向到 HKEY_CURRENT_USER\Software\Classes\VirtualStore
\MACHINE\Software\Contoso或 HKEY_USERS\UserSID_Classes\VirtualStore \Machine\Software\Contoso。
下图显示了Windows 虚拟化进程的两个组件:文件虚拟化和注册表虚拟化
重要注意
当为Windows Vista开发应用程序时,请确定在对应的requestedExecutionLevel元素 中嵌入应用程序清单文件。这将会关闭文件和注册表虚拟化,减少虚拟化的文件和注册表值 的复杂性。
更多关于UAC虚拟化和新UAC技术,请参阅“Windows Vista中的新 UAC技术”http://msdn.microsoft.com/en-us/library/bb756960.aspx .
相关文章推荐
- C#开发微信门户及应用(14)-在微信菜单中采用重定向获取用户数据
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息]
- 【万里征程——Windows App开发】文件&数据——写入与读取
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.1 Index用户列表]
- 4.windows和Linux下创建oracle用户名表空间,表,插入数据,用户管理表等操作
- 【万里征程——Windows App开发】文件&数据——写入与读取
- Windows 7开发:UAC数据重定向 - Win32 Native
- win7用户帐户控制数据重定向
- Hive做数据仓库,对Hadoop Hive 的多用户的资源分配和权限管理 (Hortonworks HDP2.2 hadoop 2.6)
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.2 Create创建用户]
- 项目(1)----用户信息管理系统(2)---项目开发(数据管理层)
- 背水一战 Windows 10 (83) - 用户和账号: 数据账号的添加和管理, OAuth 2.0 验证
- 基于ArcEngine+C#设计与开发国土资源一张图空间数据管理平台软件
- UAC---用户账户管理数据重定向
- SQL2K数据库开发五之表操作管理用户定义的数据类型
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.3 Details用户详细信息]
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - 回收进程用户/内核资源
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - 回收进程用户/内核资源
- 基于Bmob,环信easeUI的校园二手交易市场——用户管理(含头像),数据管理,文件管理(图片管理),聊天功能的开发
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.4 Edit修改用户信息]