【技术实现步骤摘要】
本专利技术涉及计算机
,尤指一种解决多图形化识别与验证动态链接库冲突的方法和装置。
技术介绍
窗口(Windows)系列操作系统,如Windows NT、Windows 2000、Windows XP以及Windows 2003等,提供了一个称为msgina.dll的图形化识别与验证(GINA,Graphical Identification and Authentication)动态链接库(DLL,Dynamic Link library)文件。这个称为msgina.dll的GINA动态链接库为用户提供交互式的系统登录界面。Windows操作系统启动时会运行一个名叫窗口登录(Winlogon)的系统程序,这个系统程序会加载GINA DLL并调用其中的相关函数,完成交互式的系统登录操作。图1是现有的Windows2000操作系统自带的GINA DLL提供的交互式系统登录界面图。现有技术除了提供上述称作msgina.dll的GINA DLL以外,还允许软件开发商按照规定的一套规则实现自己定制的GINA DLL。很多应用场景都需要采用定制的GINA DLL,如以下两个应用场景:应用场景一:单点登录应用一个企业的用户登录Windows操作系统时需要正确输入用户名和密码才能通过登录进入Windows操作系统。如果该企业应用了某网络接入软件,即需要用户完成网络接入的身份认证才能允许访问网络,用户需要再次输入用户名和密码等信息。如果两次输入的使用的是同一套用户名密码信息,则企业用户自然会提出单点登录的需求,即登录Windows时输入一次用户名密码信息后即能登录 ...
【技术保护点】
一种解决多图形化识别与验证动态链接库GINA DLL冲突的方法,其特征在于,该方法包括: 当窗口Windows操作系统启动时,窗口登录Winlogon系统程序根据注册表指定位置下保存的主导GINA DLL的名称加载该主导GINA DLL,调用该主导GINA DLL中的指定接口,由该指定接口获取主导GINA DLL的外部接口参数,并用该获取的外部接口参数调用主导GINA DLL的外部接口; 所述主导GINA DLL的外部接口实现该主导GINA DLL自身的业务逻辑,并根据预设的GINA链表查找到主导GINA DLL的下一级从属GINA DLL的名称,从该GINA链表中获取该下一级从属GINA DLL的外部接口参数,加载该下一级从属GINA DLL,用所述下一级从属GINA DLL的外部接口参数调用下一级从属GINA DLL的外部接口; 对于每一个当前从属GINA DLL,该当前从属GINA DLL的外部接口被上一级GINA DLL调用时,当前从属GINA DLL的外部接口实现本从属GINA DLL自身的业务逻辑,并根据所述GINA链表判断本从属GINA DLL是否存在再下一级GINA D ...
【技术特征摘要】
1、一种解决多图形化识别与验证动态链接库GINA DLL冲突的方法,其特征在于,该方法包括:当窗口Windows操作系统启动时,窗口登录Winlogon系统程序根据注册表指定位置下保存的主导GINA DLL的名称加载该主导GINA DLL,调用该主导GINA DLL中的指定接口,由该指定接口获取主导GINA DLL的外部接口参数,并用该获取的外部接口参数调用主导GINA DLL的外部接口;所述主导GINA DLL的外部接口实现该主导GINA DLL自身的业务逻辑,并根据预设的GINA链表查找到主导GINA DLL的下一级从属GINA DLL的名称,从该GINA链表中获取该下一级从属GINA DLL的外部接口参数,加载该下一级从属GINA DLL,用所述下一级从属GINA DLL的外部接口参数调用下一级从属GINA DLL的外部接口;对于每一个当前从属GINA DLL,该当前从属GINA DLL的外部接口被上一级GINA DLL调用时,当前从属GINA DLL的外部接口实现本从属GINA DLL自身的业务逻辑,并根据所述GINA链表判断本从属GINA DLL是否存在再下一级GINA DLL;如果存在,则从该GINA链表中获取该再下一级从属GINA DLL的外部接口参数,加载该再下一级从属GINA DLL,用所述再下一级从属GINA DLL的外部接口参数调用该再下一级从属GINADLL的外部接口;如果不存在,则结束。2、如权利要求1所述的方法,其特征在于,该方法在所有步骤之前进一步包括:安装主导GINA DLL和一个以上的从属GINA DLL,以使得在注册表的指定位置下保存主导GINA DLL的名称,在GINA链表中保存主导GINADLL和一个以上的从属GINA DLL之间的链式关系信息;所述链式关系信息包括:主导GINA DLL的名称、每个从属GINA DLL的名称、每个从属GINA DLL的外部接口参数集合、每个从属GINA DLL的外部接口名称,以及各GINA DLL之间的链式上下级关系。3、如权利要求2所述的方法,其特征在于,所述安装主导GINA DLL和一个以上的从属GINA DLL包括:当不存在主导GINA DLL时,对于第一个要进行安装的第一GINA DLL,将第一GINA DLL的名称保存到注册表的指定位置下,并将第一GINA DLL的名称标识为主导GINA DLL保存到GINA链表中;对于第二个要进行安装的第二GINADLL,当第一GINA DLL所能支持的输入参数集合包含第二GINA DLL的外部接口参数集合时,将第二GINADLL的名称保存到GINA链表中,并在GINA链表中将第二GINA DLL的名称标识为所述第一GINA DLL的下一级从属GINA DLL,还在GINA链表中与第二GINA DLL的名称对应保存第二GINA DLL的外部接口参数集合与外部接口名称;反之,当第二GINA DLL所能支持的输入参数集合包含第一GINA DLL的外部接口参数集合时,则用第二GINA DLL的名称替换注册表的指定位置下的第一GINA DLL的名称,将第二GINA DLL的名称标识为主导GINA DLL保存到GINA链表中,而将第一GINA DLL的名称标识为第二GINA DLL的下一级从属GINA DLL,并与第一GINA DLL的名称对应保存第一GINA DLL的外部接口参数集合与外部接口名称;之后,对于每一个要进行安装的当前GIN ADLL,将该当前GINA DLL插入到GINA链表中的GINA DLL链中的指定位置,并满足如下条件:当前GINA DLL的上一级GINA DLL所能支持的输入参数集合包含当前GINADLL的外部接口参数集合,当前GINA DLL多能支持的输入参数集合包含当前GINA DLL的下一级GINA DLL的外部接口参数集合。4、如权利要求3所述的方法,其特征在于,该方法进一步包括:对于GINA链表中的GINA DLL链中的任一个要进行卸载的当前GINA DLL,如果当前GINA DLL同时存在上一级GINA DLL和下一级GINA DLL,则让当前GINA DLL的上一级GINA DLL直接指向当前GINA DLL的下一级GINA DLL;如果当前GINA DLL存在上一级GINA DLL,但不存在下一级GINADLL,则将当前GINA DLL的上一级GINA DLL置为链尾;如果当前GINA DLL存在下一级GINA DLL,但不存在上一级GINADLL,则将当前GINA DLL的下一级GINA DLL置为主导GINA DLL;从GINA链表中删除当前GINA DLL的全部信息。5、如权利要求3或4所述的方法,其特征在于,该方法进一步包括:在所述GINA链表中与每个GINA DLL的名称对应保存该GINA DLL所能支持的输入参数的集合。6、如权利要求3或4所述的方法,其特征在于,在所述安装主导GINA DLL和一个以上的从属GINA DLL的过程中,所述主导GINA DLL和一个以上的从属GINA DLL都被保存到了指定目录下;所述加载GINA DLL是从所述指定目录下获取要加载的GINA DLL并进行加载;或者,在所述安装主导GINA DLL和一个以上的从属GINA DLL的过程中,所述主导GINA DLL和一个以上的从属GINA DLL被保存到了不同的目录下;在所述GINA链表中与每个GINA DLL的名称对应保存该GINADLL被保存的目录信息;所述加载GINA DLL是从GINA链表获取要加载的GINADLL被保存的目录信息,进而获取要加载GINA DLL并进行加载。7、一种解决多GINA DLL冲突的装置,其特征在于,该装置包括:Winlogon系统程序模块、属于主导GINA DLL的主导GINA DLL指定接口...
【专利技术属性】
技术研发人员:卢志坚,刘恒胜,
申请(专利权)人:杭州华三通信技术有限公司,
类型:发明
国别省市:86[中国|杭州]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。