多系统跨域单点同时登录

可实现客户端、网站、论坛等多种系统同时显示在线状态系统环境:客户端(Client),网站(WEB),论坛(BBS) Cookies的不足:安全性低、IE可禁止生效数据库:建一个登录表Online (intUserId,Client,Web,Bbs,ticket)其中intUserId表示当前登录用户ID;Client表示客户端登录标志位(登录为1否则为0);Web表示网站登录标志位(登录为1否则为0);Bbs表示论坛登录标志位(登录为1否则为0),ticket表示登录生成的随机验证码名词解释:仅一次登录:指客户端、网站、论坛中有且仅有其中一个系统处理登录状态中;仅一次退出:指客户端、网站、论坛中有且仅有其中一个系统处理登录状态中;实现过程(论坛同网站):

 

 

 

当客户端登录时,如果当前只有客户端处于登录状态,在Online表中插入一条登录记录,将的Client置1,同时获取到当前用户的ticket,访问网站时带上ticket参数,网站页面收到ticket参数时先判断当前Session是否存在,如果不存在,则根据ticket执行隐藏登录操作,获到Session;

如果当客户端登录时,网站已处于登录状态,则将Client置1即可。

当客户端退出时,如果当前只有客户端处于登录状态,则直接将Online表中的登录记录删除;如果还同时登录网站时,分为两种情况,一是客户端退出网站也相应退出,二是客户端退出网站不退出。

(1)对于客户端退出网站也退出的情况,在客户端执行退出操作时,将Online表中的登录记录删除,同时要执行一下网站退出页面(logout.aspx)操作清除Session;

(2)对于是客户端退出网站不退出的情况,在客户端执行退出操作时,将Online表中的Client置0即可。

posted @ 2009-10-28 10:16  痴人说梦  阅读(497)  评论(0编辑  收藏  举报