C#Winform 当出现重复登陆的情况时,后登陆的用户如何将先登陆的用户T掉

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#Winform 当出现重复登陆的情况时,后登陆的用户如何将先登陆的用户T掉相关的知识,希望对你有一定的参考价值。

这个过程应该咋样的,怎么实现呢。。

登陆时系统生成一个随机KEY,在本地和系统都放这个KEY。
用户在操作核验本地和远程的KEY。

如果第二个用户登陆的话服务器上的KEY将变更。

第一个用户在你核验的时候将被T掉。追问

能不能详细解释下?这个KEY是怎样在本地存放的?这句话也没看明白“用户在操作核验本地和远程的KEY。“

追答

在用户登录验证的时候,
你的远程服务器生成一个key,并更新的你当前用户的表中。例如叫snKey
在用户登录核验成功以后,你的服务端自动生成一个串随机字符串存入到snkey这个字段中。
同时将snkey下发到你的登录客户端中。
此时你用后台进程或者是你在进入其他功能页面的时候会做一个用户信息验证的操作。
你要核验的就是本地snkey和远程snkey即可。
如果不匹配就直接踢出登录。
这样第二个登录就就会更新snkey,第一个用户在稍后的验证就会被踢掉了。

参考技术A 这个要考虑多种情况,正常使用的情况是你在服务器数据库加个字段标记用户的登录状态,用户每次登录之前都从服务器取这个状态,用户退出之后又重置这个状态,如果已经登录过则不让登录,但是你这样考虑用户是不是非正常关闭软件,非正常关闭的话可能导致你没有将数据库里面的状态重置,这样用户下次就一直登录不了。追问

登陆问题我已经用发送心跳包的方法解决了,现在就是不知道后面的用户该咋样把前面的用户T掉。。

追答

这个你估计要在服务器上实现了

做winform里怎么把登陆页面的账号传到其他页面的控件中

这两个页面没有什么关联的!
想把登录窗口的userid值传到另一个窗口的textbox里去!
怎么做

建立一个User类,里面用来保存用户的相关信息。登录成功后把用户信息保存到User类里面,所有窗体都在这里面读取用户信息。另一个窗口的textbox也可以从这里读,例如User.userid; 参考技术A 用session可以嘛。
还可以在页面里传递个url,用Ajax也可以实现啊
参考技术B 百度搜索

"[原创]C# Winform或C/S程序记录用户登录状态"

by C#易学网
参考技术C 寤虹珛涓涓�润镐佺被锛屾妸浣犺�浼犵殑瀛楁�鍊艰�鎴愮被阅岄溃镄勯润镐佹暟鎹�垚锻樻垨灞炴э紝鍦ㄥ叾浠栫獥浣扑腑铡昏�闂�偅涓�润镐佹垚锻桦氨鏄�简

以上是关于C#Winform 当出现重复登陆的情况时,后登陆的用户如何将先登陆的用户T掉的主要内容,如果未能解决你的问题,请参考以下文章

做winform里怎么把登陆页面的账号传到其他页面的控件中

WinForm检测用户是不是已登陆的方法--简单问题--请高手回答!

winform程序登陆后关闭登录窗体

c#做winform时用户登陆系统后怎么在状态栏上显示当前用户的姓名

当运行一个winform界面时候,怎么点击一个按钮就进入另一个Winform界面,之前的界面关闭掉。。

解决ssh配置无密码登陆后再次出现请求输入密码的情况