MSGina.dll功能

如果要编写 GINA 来替换 Microsoft 标准 GINA DLL (MSGina.dll) ,可能需要提供部分或全部标准 GINA 功能。 下面是标准功能的列表以及控制方式的简要说明。

注意

在 Windows Vista 中忽略 GINA DLL。

 

注册表项值控制其中许多标准 GINA 功能的可用性或行为。 除非另有说明,否则这些项值属于 Winlogon 注册表项,其值类型为 [REG_SZ]。 Winlogon 键的实际路径为:

\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon

  • “法律通知”对话框

    在某些地方,任何有权访问工作站的人登录并开始工作都是合法的,除非有通知指出系统仅适用于授权用户。 此外,许多用户希望在正常登录之前显示特定于公司的消息。 标准 GINA 使用两个 Winlogon 注册表项值来允许系统在登录前显示信息。 如果任一键值存在并且包含非 null 字符串,则会在通常的欢迎屏幕前显示“法律声明”对话框。 下表显示了这些键值名称。

    键值名称 目录
    LegalNoticeCaption 要显示为法律声明对话框描述文字的字符串
    LegalNoticeText 要显示为法律声明对话框消息的字符串

     

  • 显示姓氏

    默认情况下,登录屏幕显示成功登录到工作站的最后一个用户的名称。 此功能由 DontDisplayLastUserName 注册表项值控制。 当此键值设置为 1 时,登录对话框中不会显示用户名。

  • 自动登录

    此功能允许系统在系统每次启动时自动登录用户,方法是使用默认信息并禁用 CTRL+ALT+DEL 登录框。

    此功能使用以下 Winlogon 键的值。

    目录
    AutoAdminLogon 1
    AutoLogonCount 执行自动登录的次数
    DefaultUserName 用户帐户的名称
    DefaultDomainName 用户帐户位于的域的名称

     

    如果 AutoAdminLogon 键值存在并且包含一个值,并且 AutoLogonCount 键值不存在,则每次当前用户注销或系统重启时都会发生自动登录。 登录的帐户是使用 DefaultUserName 和 DefaultDomainName值指定的。 可以通过以下两种方式之一指定帐户的密码。 对于运行 Windows Server 2003 或 Windows XP 操作系统之一的计算机,应使用 LsaStorePrivateData 函数将密码存储为机密。 有关详细信息,请参阅 保护自动登录密码。 另一种存储密码的方式是在 Winlogon 密钥的 DefaultPassword 条目中以纯文本形式存储;出于安全目的,应避免使用此方法。 如果使用 LsaStorePrivateData 函数存储密码,则不要在 Winlogon 密钥中提供 DefaultPassword 条目。

    如果 AutoAdminLogon 键值存在并且包含一个值,并且 AutoLogonCount 键值存在且不为零, 则 AutoLogonCount 将确定发生的自动登录次数。 每次重启系统时, AutoLogonCount 的值都会递减 1,直到达到零。 当 AutoLogonCount 达到零时,不会自动登录任何帐户, AutoLogonCount 键值和 DefaultPassword 键值(如果使用)将从注册表中删除, AutoAdminLogon 将设置为零。

    使用 AutoAdminLogon 还有一个注意事项:默认情况下,当 AutoAdminLogon 为 1 时,MSGina.dll检查 SHIFT 键的状态。 如果在启动过程中按住 SHIFT 键,MSGina.dll将忽略 AutoAdminLogon 密钥值,并以交互方式提示用户提供标识和身份验证信息。 调试专用应用程序时,此功能非常有用。 若要禁用 SHIFT 键的含义,请将 IgnoreShiftOverride 键值设置为 1。

  • 允许未经身份验证的关闭

    可以将默认 GINA 配置为在登录对话框中包括 “关闭 ”按钮。 这样,用户无需先登录即可关闭系统。 以下键值控制是否包含此按钮。

    说明
    ShutdownWithoutLogon 一个包含按钮;零以排除按钮

     

  • Userinit.exe激活

    Userinit.exe是用户登录时由 MSGina.dll 执行的应用程序。 它在新登录用户的 上下文 和应用程序桌面上运行。 其用途是设置用户的环境,包括还原网络使用、建立字体和屏幕颜色等配置文件设置,以及运行登录脚本。 完成这些任务后,Userinit.exe执行用户 shell 程序。 shell 程序继承Userinit.exe设置的环境。 Userinit.exe执行的特定 shell 程序存储在 Winlogon 注册表项下的 Shell 键值中。

    Shell 键值可以包含要执行的程序的逗号分隔列表。 Windows 资源管理器是默认 shell 程序,如果 Shell 键值为 null 或不存在,将执行。 默认情况下,会列出 Windows 资源管理器。

  • 登录安全选项

    登录时,如果用户输入 安全注意序列 (SAS) ,则会向用户显示安全选项屏幕。 列出的选项包括:

    • 关闭系统。
    • 注销。
    • 更改密码。
    • 转到任务列表。
    • 锁定工作站。

    当用户登录时收到 SAS 事件时,替换 GINA 可以提供类似的选项。