Vista用户帐户控制程序的开发要求( 二 )


Windows Vista 更新
以下更新体现了 Windows Vista 在功能方面累积的核心变化 。
默认情况下将启用 UAC
所有后续的“用户帐户均创建为“标准用户
默认情况下,在安全桌面上显示提升提示
后台应用程序的提升提示会最小化到任务栏上
在用户的登录路径中阻塞提升
默认情况下,在新安装的系统中禁用内置管理员帐户
用户帐户控制和远程应用场景
新的默认访问控制列表 (ACL) 设置
UAC 工作原理
本部分为应用程序开发人员介绍了 UAC 的体系结构和功能组件,其中包括主题“Windows Vista 的新技术和“UAC 体系结构 。
Windows Vista 的新技术
以下各部分详细介绍了 Windows Vista 所应用的新技术 。
安装程序检测
通过 Windows Installer 4.0 为标准用户修补应用程序
用户界面特权隔离
虚拟化
UAC 体系结构
以下内容介绍了 UAC 体系结构图表中显示的流程以及当可执行程序尝试启动时如何实现 UAC 。
标准用户启动路径
Windows Vista 标准用户启动路径与 Windows XP 启动路径类似,只不过包含了一些修改 。
ShellExecuten 调用 CreateProcess 。
如果应用程序需要提升,CreateProcess 会调用 AppCompat、Fusion 和 Installer Detection 进行评估 。然后,对可执行程序进行检查以确定其 requestedExecutionLevel(存储在可执行程序的应用程序清单中) 。AppCompat 数据库存储应用程序的应用程序兼容性修复条目信息 。Installer Detection 检测安装执行程序 。
CreateProcess 返回声明 ERROR_ELEVATION_REQUIRED 的 Win32 错误代码 。
ShellExecute 专门等待这个新错误,收到该错误后,立即全面调用“应用程序信息服务(AIS) 以尝试进行提升后的启动 。
已提升启动路径
Windows Vista 的已提升启动路径是一种新的 Windows 启动路径 。
AIS 收到来自 ShellExecute 的调用,然后重新评估所请求的执行级别和组策略,以确定是否允许提升并定义提升用户体验 。
如果请求的执行级别需要提升,则该服务将使用从 ShellExecute 传入的 HWND 启动调用方交互桌面上的提升提示(基于组策略) 。
如有必要,在用户给予同意或提供有效凭据后,AIS 将检索与相应用户关联的对应访问令牌 。例如,对于只属于备份操作员组的用户成员和属于本地管理员组的用户成员,请求 highestAvailable 的 requestedExecutionLevel 的应用程序所要检索的访问令牌是不同的 。
AIS 重新发出 CreateProcessAsUser 调用,提供管理员访问令牌并指定调用方的交互桌面 。
UAC 是否会影响您的应用程序?
您的应用程序是否会受到 UAC 的影响取决于应用程序的当前状态 。多数情况下,无需进行任何更改就可符合 Microsoft Windows? 安全要求 。然而,有一些应用程序(包括业务线 (LOB) 应用程序)可能需要对其安装、运行和更新过程进行更改才能在 Windows Vista UAC 环境中正常工作 。
注意 如果应用程序在 Windows XP 上可作为标准用户正常运行,那么它同样也可以在 Windows Vista 上作为 STANDARD 用户正常运行 。
有关本主题的详细信息,请参阅 Windows 帮助文件中的以下分部分 。
为什么需要消除应用程序的管理依存性?
降低应用程序的总体拥有成本
如何确定应用程序是否存在管理依存性?
对于合法的管理员应用程序有什么要求?
为 Windows Vista 设计应用程序
以下列表介绍了为 Windows Vista 设计应用程序的工作流:
第一步:测试应用程序的应用程序兼容性 。
第二步:将应用程序分类为标准用户、管理员或混合用户应用程序 。
第三步:重新设计应用程序功能以兼容 UAC 。

推荐阅读