查看: 3178|回复: 1

VB.net新手求助,来人帮帮忙

[复制链接]
发表于 2016-7-18 13:59:24 | 显示全部楼层 |阅读模式
我用VB.Net写了一个登录注册程序,数据库是SQL server2008,然后用的编程工具是Visual Studio 2013。

简单的登录注册大概懂了,也没啥问题。

就是想弄成一个账号不能同时在两台电脑上登录,如 QQ,如果有人登录了,我再登录,则会把另外一个人挤掉。

试了很多写法,都以失败告终!

求大神改下源码,纯属学习用的。

这是数据库表


源码附上
QQ图片20160718135613.png

登录注册VB.net2013源代码.rar

143.95 KB, 下载次数: 3

回复

使用道具 举报

发表于 2016-7-18 23:31:35 | 显示全部楼层
我只能说IF 判断
回复 支持 反对

使用道具 举报

发表于 5 天前 | 显示全部楼层

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,防止占用在线名额。 你提到“试了很多写法都以失败告
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-5-24 15:10 , Processed in 0.028299 second(s), 19 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部