完全替换Windows 7的登录屏幕?

时间:2011-11-12 15:39:22

标签: winapi winlogon gina

Windows XP 中,可以将登录界面替换为您自己的GINA实现,这可以为登录屏幕添加其他功能,并实现一些特定于组织的功能。

我查看了一些MSDN文章,他们都建议使用新的登录系统(Windows Vista和更新版本)无法实现这一目标。

但是,在登录屏幕或每次调用SAS序列时,LogonUI进程启动并提供类似GINA的界面供用户进行交互。

我想知道,是否可以推出自己的 LogonUI 实施方案,以取代登录/ SAS用户界面?我不能找到任何文章,但我认为这是一个可行的选择。

1 个答案:

答案 0 :(得分:2)

迟到了,但是你走了。您可以使用自己的字段创建自定义凭据提供程序,以接受登录凭据(无论采用哪种形式)。如果您想超越它并构建一些工作流程,则需要在凭证的SetSelected方法中启动模态窗口。然后你可以使用你的GINA实现(没有实际的GINA功能)。使用CPUS类型来了解您正在运行的模式(LOGON,LOCK_WORKSTATION,CHANGE_PASSWORD等)并相应地自定义UI。

显然,这不是“推荐”方法(实际上非​​常hacky),但它是最简单的方法。需要注意的是:你会遇到C-A-D超时等问题,所以要做好一些意外的准备。

另一种可能更优雅的方式是使用登录/解锁屏幕(正确的方式)构建自定义凭据提供程序。然后提供触发其他工作流的链接(例如,重置密码)。您可以编写通过实施凭证的CommandLinkClicked方法单击特定链接时启动的自定义屏幕。

如果你有时间并且想要做到这一点,我会推荐第二种方法。你将为自己节省很多麻烦。