首页 新闻 会员 周边 捐助

问下 如何用C#实现单点登陆 大神们

0
悬赏园豆:10 [已解决问题] 解决于 2014-12-06 00:54

即像QQ一样只允许一个账号登陆,如果别人在其他地方登陆了就会把这个已经登陆了的用户挤下线!求解决 

IT_小子的主页 IT_小子 | 初学一级 | 园豆:17
提问于:2014-12-04 00:29
< >
分享
最佳答案
0

服务器收到新的登陆请求后发一个信号给之前已登陆的客户端让它下线呀,而且新地方登陆后,旧地方的所有请求都不处理就行了。

收获园豆:3
XiaoFaye | 老鸟四级 |园豆:3087 | 2014-12-04 08:49

原理是这么个就是 如何使已经登陆的用户下线怎么获取它登陆的全局信息,使它的信息失效

IT_小子 | 园豆:17 (初学一级) | 2014-12-04 12:54

@IT_小子: 

它当时登陆就已经在服务器上注册了呀,怎么会没有信息???失不失效是服务器说了算,不是它说了算。

XiaoFaye | 园豆:3087 (老鸟四级) | 2014-12-04 14:46
其他回答(3)
0
收获园豆:3
Halower | 园豆:1723 (小虾三级) | 2014-12-04 09:47

你这是单点登录,他要的是一个用户只允许在一个客户端上登录,牛头对上了马嘴,呵呵。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2014-12-04 10:17

@爱编程的大叔:没看清

支持(0) 反对(0) Halower | 园豆:1723 (小虾三级) | 2014-12-04 10:19

@爱编程的大叔:  有道理

支持(0) 反对(0) Halower | 园豆:1723 (小虾三级) | 2014-12-04 10:20
0

挺麻烦的,你得先说下你是什么环境?

WEB?/WINFORM?

收获园豆:2
爱编程的大叔 | 园豆:30844 (高人七级) | 2014-12-04 10:18

Web

支持(0) 反对(0) IT_小子 | 园豆:17 (初学一级) | 2014-12-04 12:20

@IT_小子: 要求不高的话,就等用户请求页面的时候判断,让他下线。要求高的话就得麻烦点,

得引入长连接通信机制之类的。

我只说原理吧,至于你能不能实现,我就不评判了。

1、登录用户,用户表中弄几个字段,记录一个TOKEN。

2、页面请求时,判断用户TOKEN是否与数据库中的用户TOKEN一致,不一致则踢出。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2014-12-04 12:37

@爱编程的大叔: 你参考下这个 我用了这个实现不了http://www.cnblogs.com/xlhblogs/archive/2012/03/29/2422804.html

支持(0) 反对(0) IT_小子 | 园豆:17 (初学一级) | 2014-12-04 12:46

@爱编程的大叔: hOnline[strKey] = "XXXXXX";把已经登陆的键值修改了但是OnInit事件里面的idE.Value.ToString()取出来的还是我给的UserID

支持(0) 反对(0) IT_小子 | 园豆:17 (初学一级) | 2014-12-04 12:49

@IT_小子: 你要用Application变量当然也是可以的,实现不了,那是你不会用。

只能要求你多练习了,我也没有办法代替你学习。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2014-12-04 12:49

@爱编程的大叔: 汗 

支持(0) 反对(0) IT_小子 | 园豆:17 (初学一级) | 2014-12-04 12:50
0

如果是控制一个帐号只能在一个地方登录,可以使用token机制,每次登录的时候检查一下该帐号是否存在有效的token,如果有的话说明在其他的地方已经登录了。但如果要实现qq的那种顶下去的效果,一楼的方案可行

收获园豆:2
最长的路漫漫 | 园豆:252 (菜鸟二级) | 2014-12-04 10:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册