2 qq 31489629 qq_31489629 于 2016.01.27 21:05 提问

asp.net现在最流行高效的单用户登录是怎么做的?还是application吗

现在要做单用户登录,即一个账户在A登录后,然后B登录该账户,A显示被挤掉并返回登录页

4个回答

caozhy
caozhy   Ds   Rxr 2016.01.27 21:13
已采纳

不建议用application,本质上application起到了我说的数据库的作用。但是考虑到asp.net进程回收,以及横向扩展的需要,放数据库比较好。

qq_31489629
qq_31489629 代码我写的差不多了,但是要怎么才能让用户一操作就检测呢,检测代码应该放在哪
接近 2 年之前 回复
qq_31489629
qq_31489629 好,我看一下,谢谢你啊~
接近 2 年之前 回复
caozhy
caozhy 回复qq_31489629: 不需要不停地检测数据库,只需要在它下次访问页面的时候,你自然需要判断
接近 2 年之前 回复
qq_31489629
qq_31489629 回复caozhy: B登录时候怎么让A下线,不能不停地检测数据库,服务器受不了
接近 2 年之前 回复
caozhy
caozhy 回复qq_31489629: 对于实时性要求高的程序,可以用signalr实现服务器主动发消息给客户端,实现立即下线。但是一般用不到那么复杂。signalr也算2010年以后的技术吧。如果你为了技术而技术的话。
接近 2 年之前 回复
qq_31489629
qq_31489629 回复caozhy: 额,是我的问题太多了,有点串,数据库的话是不是用触发器事件让A下线
接近 2 年之前 回复
caozhy
caozhy 回复qq_31489629:不存在这个问题。意外关闭,session失效,重新登录,你又把新的值写进去了,另一个用户就踢下去了。
接近 2 年之前 回复
qq_31489629
qq_31489629 使用数据库的时候在面对一些意外关闭的情况会很尴尬,因为数据库没有过期时间,求改善
接近 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.01.27 21:12

这个最简单的就是每次登录产生一个随机数放在session中,同时放在用户表中。判断登录的时候判断两者是否一致。
因为后面的人一登录,肯定数据库里的那个就变掉了,而之前的用户的session的不会受影响,所以他再操作就被判断没有登录。

qq_31489629
qq_31489629   2016.01.27 21:06

网上一些都是2010年的技术了,求大牛分享一下

91program
91program   Ds   Rxr 2016.01.27 21:18
qq_31489629
qq_31489629 这个看过了,这没有实现让A下线的功能,不过还是谢谢了
接近 2 年之前 回复
caozhy
caozhy 这不就是lz说的“2010年的application”技术么
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片