Winlogon 的责任
Winlogon 具有以下职责:
窗口工作站和桌面保护
Winlogon 设置窗口工作站和相应桌面的保护,以确保每个桌面都能够正确访问。 一般情况下,这意味着本地系统将拥有对这些对象的完全访问权限,并且以交互方式登录的用户将对窗口工作站对象具有读取访问权限,并且对应用程序桌面对象具有完全访问权限。
标准 SAS 识别
Winlogon 在 User32 服务器中具有特殊的挂钩,允许它监视 CTRL+ALT+DEL 安全关注序列 (SAS) 事件。 Winlogon 使此 SAS 事件信息可供 GINA 用作其 SAS,或用作其 SAS 的一部分。 一般情况下,GINA 应自行监视 SAS;但是,任何 GINA 将标准 CTRL+Alt+DEL SAS 作为它识别的 SAS 之一,都应使用为此提供的 Winlogon 支持。
SAS 例程调度
当 Winlogon 遇到 SAS 事件或由 GINA 传递到 Winlogon 时,Winlogon 会相应地设置状态、更改 Winlogon 桌面,并调用 GINA 的 SAS 处理函数之一。
用户配置文件加载
当用户登录时,其用户配置文件将加载到注册表中。 这样,用户的进程就可以使用特殊注册表项HKEY_CURRENT_USER。 Winlogon 会在成功登录后自动执行此作,但在激活新登录用户的 shell 之前。
将安全性分配给用户 shell
当用户登录时,GINA 负责为该用户创建一个或多个初始进程。 Winlogon 为 GINA 提供了一个支持函数,用于将新登录用户的安全性应用于这些进程。 但是,执行此作的首选方法是让 GINA 调用 Windows 函数 CreateProcessAsUser,并允许系统提供服务。
屏幕保护程序控件
Winlogon 监视键盘和鼠标活动,以确定何时激活屏幕保护程序。 激活屏幕保护程序后,Winlogon 将继续监视键盘和鼠标活动,以确定何时终止屏幕保护程序。 如果屏幕保护程序标记为安全,Winlogon 会将工作站视为锁定。 当存在鼠标或键盘活动时,Winlogon 将调用 GINA WlxDisplayLockedNotice 函数,并恢复锁定的工作站行为。 如果屏幕保护程序不安全,任何键盘或鼠标活动都不会终止屏幕保护程序,而不会通知 GINA。
多个网络提供商支持
在 Windows 系统上安装的多个网络可以包含在身份验证过程和密码更新作中。 此包含允许其他网络使用 Winlogon 的安全桌面在正常登录期间一次性收集标识和身份验证信息。 可用于 GINA 的 Winlogon 服务中所需的一些参数显式支持这些额外的网络提供程序。