基于ActiveX控件技术的B/S模式单态登录方法
电子元件,电子元器件深圳市创唯电子有限公司
您现在的位置: 首页 > 电子技术
基于ActiveX控件技术的B/S模式单态登录方法  2012/3/1
摘 要: 利用ActiveX控件技术,结合B/S模式与C/S模式的双重优点,将C/S模式中的socket网络通信技术移植于B/S模式中,实现单态模式登录,为基于B/S模式应用系统的客户端与服务器的通信提供了一种新的解决方案。关键词: 单态; B/S模式; C/S模式; ActiveX组件 单态(Singleton)模式的主要作用是使得一个类Class只有一个实例存在,即该模式仅允许有且仅有一个实例在运行。在很多C/S模式的软件中经常会遇到单态模式的应用。用户用

摘   要:利用ActiveX控件技术,结合B/S模式与C/S模式的双重优点,将C/S模式中的socket网络通信技术移植于B/S模式中,实现单态模式登录,为基于B/S模式应用系统的客户端与服务器的通信提供了一种新的解决方案。
关键词:单态; B/S模式; C/S模式; ActiveX组件

    单态(Singleton)模式的主要作用是使得一个类Class只有一个实例存在,即该模式仅允许有且仅有一个实例在运行。在很多C/S模式的软件中经常会遇到单态模式的应用。用户用一个账号登录系统之后,如果想再用第二个账号登录,必须先把第一个账号注销。该模式在C/S模式中实现比较简单,但在B/S模式中实现却比较复杂。在B/S模式中,浏览器本身并不是单态模式,用户可以打开多个浏览器来登录同一个系统,例如在浏览器的实例1中用“张三”登录,再打开浏览器的实例2,用“李四”登录,这时虽然是用两个浏览器实例在系统中登录了两个账号,但这两个实例之间会相互影响,特别是与服务器通信时,容易带来通信对象错误的问题。
    B/S模式程序中一般会采用Session或cookie来保存登录信息,便于在其他的页面中使用,以避免多次重复登录系统,即所谓的单点登录(SSO)模式。在前面所举的例子中,用“张三”登录后,可将其保存在session中,令Session[‘username’]=“张三”;如果再用“李四”登录,同样也可保存在Session中,Session[‘username’]=“李四”;由于系统中的Session是唯一的,所以这时Session[‘username’]会覆盖前面的值,使得在用“张三”登录的系统中实际保存的登录信息变成了“李四”。
1 单态登录模式功能
    本文所提到的单态登录模式拟实现以下功能:
    (1) 在一台机器上只能登录一个账号,如果已经登录了一个账号,再次登录时则提示登录失败。
(2) 一个账号最多只能在一台机器上登录,如果要登录的账号已在其他的机器上登录了,则提示登录失败。
实现此项功能的好处之一是在客户端与服务器进行通信时,在查找通信对象时不至于发生错误。
单态模式登录在C/S模式中可以采用很多方法来实现上述功能,但在B/S模式中实现起来却比较困难。最简单的方法是在数据库中建一个数据表Login(字段为UserName和LoginIP),用来保存已登录的登录账号和登录机器的IP信息。每次登录时,先查一下该数据表,确定要登录的账号在Login表中是否已存在,如果不存在则表明该账号尚未登录,允许登录;如果存在则表明已被登录,不可再登录。退出系统时,先将Login表中对应的记录删除掉。
该方法存在的最大问题是:当登录系统后,若出现非正常退出系统的情况(如突然断电、程序崩溃等),则无法将Login表中的记录清除。使得下次登录查询Login表时,误以为该账号仍在登录中,导致登录失败。
有人提出每隔一定时间(如30 s)查询Session来判断用户是否在线,这种方法一方面不能保证百分之百地解决问题,另一方面会给服务器带来不小的负担。本文所给出的B/S模式的单态模式登录方法是利用ActiveX技术结合C/S模式与B/S模式的特点,在ActiveX控件中运用网络通信技术来解决前面所提到的问题。
2 关键技术

与《基于ActiveX控件技术的B/S模式单态登录方法》相关列表
电话:400-900-3095
QQ:800152669
库存查询
Copyright(C) 2011-2021 Szcwdz.com 创唯电子 版权所有 备案号:粤ICP备11103613号
专注电子元件代理销售  QQ:800152669  电子邮件:sales@szcwdz.com  电话:400-900-3095