替换GINA.DLL实现自己的登陆界面uiu

本文介绍了如何通过编程替换微软的MSGINA.DLL,以创建自己的登录验证界面。作者阐述了NT/2000系统中WinLogon与GINA DLL的交互原理,并列出了一系列必须实现的GINA函数。文章展示了如何处理WlxLoggedOutSAS函数以实现自定义登录对话框,并给出了安装和注意事项,包括Unicode的使用、注册表设置和错误处理。
摘要由CSDN通过智能技术生成

  你可以通过编程替换掉微软的MSGINA.DLL,用来实现自己的密码登陆验证功能,如图,我就加入了两个密码验证的功能。
  一、原理
  在NT/2000中交互式的登陆支持是由WinLogon调用GINA DLL实现的,GINA DLL提供了一个交互式的界面为用户登陆提供认证请求。WinLogon会和GINA DLL进行交互,缺省是MSGINA.DLL(在System32目录下)。微软同时也为我们提供了接口,我们可以自己编写GINA DLL来代替MSGINA.DLL。
  WinLogon初始化时会创建3个桌面:
  (1)、winlogon桌面:主要显示Windows 安全等界面,如你按下CTRL+ALT+DEL,登陆的界面等
  (2)、应用程序桌面:我们平时见到的那个有我的电脑的界面
  (3)、屏幕保护桌面:屏幕保护显示界面。
  在默认情况下,GINA显示登陆对话框,用户输入用户名及密码 。所以要获得用户名和密码 ,则可以写一个新的GINA DLL,其中提供接口调用msgina.dll的函数WlxLoggedOutSAS。
  二、程序实现
  GINA DLL要输出下列函数(winlogon会调用):
  (表一)GINA 函数一览表
  函数 描述
  WlxActivateUserShell 激活用户外壳程序
  WlxDisplayLockedNotice 允许GINA DLL 显示锁定信息
  WlxDisplaySASNotice 当没有用户登陆时,Winlogon调用此函数
  WlxDisplayStatusMessage Winlogon 用一个状态信息调用此函数进行显示
  WlxGetConsoleSwitchCredentials Winlogon调用此函数读取当前登陆用户的信任信息,并透明地将它们传到目标会话
  WlxGetStatusMessage Winlogon 调用此函数获取当前状态信息
  WlxInitialize 针对指定的窗口位置进行GINA DLL初始化
  WlxIsLockOk 验证工作站正常锁定
  WlxIslogoffOk 验证注销正常
  WlxLoggedOnSAS 用户已登陆并且工作站没有被加锁,如果此时接收到SAS事件,则Winlogon 调用此函数
  WlxLoggedOutSAS 没有用户登陆,如果此时收到SAS事件,则W
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值