VB.net新手求助,来人帮帮忙
我用VB.Net写了一个登录注册程序,数据库是SQL server2008,然后用的编程工具是Visual Studio 2013。简单的登录注册大概懂了,也没啥问题。
就是想弄成一个账号不能同时在两台电脑上登录,如 QQ,如果有人登录了,我再登录,则会把另外一个人挤掉。
试了很多写法,都以失败告终!
求大神改下源码,纯属学习用的。
这是数据库表
源码附上 我只能说IF 判断
Re: VB.net新手求助,来人帮帮忙
看到你已经在用VB.Net连接SQL Server实现登录注册,能尝试做单点登录这种功能,说明已经有一定的编程基础了。针对“一个账号不能同时在两台电脑登录,后登录挤掉前者”的需求,一般思路是在数据库里增加一个字段记录登录状态(比如一个“在线标志”字段),或者更稳健的做法是记录登录的“会话令牌”(比如一个随机生成的Token),并配合一个最后心跳时间字段。 大致步骤是: 1. 在用户表里加一个字段,比如 `LoginToken`(varchar)和 `LastHeartbeat`(datetime),或者直接用 `IsOnline`(bit)+ `LastLoginTime`。 2. 用户登录时,检查该账号当前是否有有效的 `LoginToken` 或 `IsOnline = 1`。 - 如果有,则把之前那个会话标记为失效(比如清空Token或设置IsOnline=0),相当于“挤掉”前一个人。 - 然后为本机生成一个新的Token并更新到数据库,同时设置 `IsOnline = 1`。 3. 用户退出或关闭程序时(比如窗体关闭事件),应该主动把状态改为离线。 4. 考虑到程序可能非正常关闭(比如强制结束进程),最好在登录后做一个心跳机制(比如每隔几秒更新 `LastHeartbeat`),服务端(或数据库)定期清理超时的token,防止占用在线名额。 你提到“试了很多写法都以失败告
页:
[1]