在 Windows XP 中,可以用您自己的 GINA 实现替换登录界面,这可以向登录屏幕添加额外的功能并实现一些组织特定的功能。
我看过许多 MSDN 文章,它们都表明使用新的登录系统(Windows Vista 和更新版本)不可能实现这一点。
但是,在登录屏幕上或每次调用 SAS 序列时,LogonUI
进程都会启动并为用户提供一个类似 GINA 的界面进行交互。
我想知道,是否可以滚动您自己的实现 LogonUI
以替换登录/SAS UI?我找不到关于它的任何文章,但我认为这是一个可行的选择。
最佳答案
有点晚了,但是给你。您可以使用自己的字段创建自定义凭据提供程序以接受登录凭据(无论采用何种形式)。如果您想超越这一点并构建一些工作流程,您将需要在凭证的 SetSelected 方法中启动一个模式窗口。然后您几乎可以使用您的 GINA 实现(没有实际的 GINA 函数)。使用 CPUS 类型了解您正在运行的模式(LOGON、LOCK_WORKSTATION、CHANGE_PASSWORD 等)并相应地自定义您的 UI。
显然,这不是“推荐”的方法(实际上很老套),但它是最简单的。一个警告:你会遇到 C-A-D 超时等问题,所以要为一些意外做好准备。
另一种可能更优雅的方法是使用登录/解锁屏幕构建自定义凭据提供程序(正确的方法)。然后提供链接以触发其他工作流程(例如,重置密码)。您可以编写自定义屏幕,通过实现凭据的 CommandLinkClicked 方法在单击特定链接时启动这些屏幕。
如果您有时间并且想正确地做到这一点,我会推荐第二种方法。以后您会省去很多麻烦。
关于winapi - 完全替换 Windows 7 的登录屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8105456/