看看,我策划的《单点登录方案》是否完美!

winner2050 2006-10-13 09:07:07
口述伪代码:
登录以后保存登录信息进入若干个cache--保存有电脑名,IP,会话时间...

每个用户都建立唯一的cache,其中一个(用户名+alive)的cache是保存最近一次会话时间的。

它通过AJAX定时刷新的,10秒更新一次(支持通过设置修改)

用AJAX定时刷新cache保存有最近一次会话时间,能有效的识别用户电脑死机,停电,直接关闭浏览器,网线接触不良等等极端的意外离线

后影响下次登录。

用电脑名和IP联合判断避免同局域网(网吧、公司)里面不同电脑当一个人看待的错误。

场景:
当用户用户名admin在A点登录,用了一下就关浏览器了,但是想想还有些工作没有作。再次登录,系统使用cache判断电脑名,IP是一

样的时候,就进行密码验证。

当用户名admin在A点登录并保持在线的时候,有人在B点用用户名admin登录,系统通过Admin_Alive的Cache比较系统当前时间相差的

时间在10秒以内的时候,拒绝B点登录请求。

当用户名admin在A点登录并保持在线的时候,有人在B点用用户名admin登录,系统通过Admin_Alive的Cache比较系统当前时间相差的

时间大于10秒,执行B点登录请求,就进行密码验证。

在电脑甲用admin登录(登录成功),又在电脑乙用admin登录。系统使用cache判断电脑名,IP是不一样的时候拒绝登录。
....


缺点:用户过多的时候服务器保存cache量、定时刷新,可能令某些服务器负担重。

优点:支持意外掉线的识别。

允许误差:A点登录成功,后来网线被流星炸断了,他打电话给交待其他人帮忙,人家在别的地方帮他干活。
后来抢修完成以后,他自己继续用工作。这个时候因为只有在登录检查状态,进入系统以后不检查,COOKIE依然生效使他继续合法的操作。

修正误差:如果系统应用在比较严格的应用环境上,检查状态跟检查权限同步进行。
...全文
157 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dashi 2006-10-14
  • 打赏
  • 举报
回复
up~~~
aafshzj 2006-10-13
  • 打赏
  • 举报
回复
ax调用,系统的Cookie可能一直都不会过期。

有时候,思路才是最重要的问题。

呵呵,周末了,祝各位周末愉快。



欢迎大家来我的博客作客:http://blog.csdn.net/aafshzj/
我正在写一系列关于AAF组件框架的文章。该框架能对开发工作提供很多帮助,并极大地提高开发效率。希望大家看一看并提出宝贵建议。

aafshzj 2006-10-13
  • 打赏
  • 举报
回复
做了不少工作,努力值得肯定。

但是,远远算不上...呵呵。

1)客户端ajax每十秒访问服务器一次,如果30分钟内并发在5000人的话,再考虑到很多人就算完事也不一定很快关IE的事实,这将至少造成500次/s的Http请求。不算很可怕,但也是明显的负担。当然,你可以说你的适用对象是用户很少的内网系统。但即便如此,我觉得这一点也意义不大。

2)要解决的登录互斥问题,我已经在另一个帖子里说过,应该换个思路:为什么非要前一个登录排斥后一个登录,而不是后一个排斥前一个?如果目的只是为了确保用户同时只在一个地点访问站点,那么后一个就足够了,而且用户体验和性能都会很好。因为,根本没有道理让用户后发生的登录行为受制于已经成为历史的原登录行为。

3)如果一个用户在同一机器上,通过多个IE实例分别打开你的站点多次怎么办?如果用户在一个机器上登录了你的系统并且没有关闭就下班回家,回家后却总是登不上你的系统怎么办?而且因为你的AJ
winner2050 2006-10-13
  • 打赏
  • 举报
回复
啊!发错了。到了水区。
请版主帮忙搬到ASP.net区。

23点还在水区,我就自己到ASP.NET再开一贴了。提前打个招呼,不要说我恶意灌水就行。
winner2050 2006-10-13
  • 打赏
  • 举报
回复
欢迎PP

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧