公司有个小需求,要求账号不能同时登录在多台电脑上,就像那个微信或QQ一样,如果一台电脑登录了,原来登录的就自动退出了(网上搜索点单点登录,发现有些出入,人家是实现一次登录在多个系统间认证的)

找了些资料,最后发现还是通过数据库来验证用户是否是在其它电脑上登录最为有效了,实现也简单,最关键的部分就是用户登录时生成一个不重复的字符串,这里我用的是生成一个guid来作为标志.

第一步: 用户登录,生成一个guid,用账号查询登录列表中是否有登录的信息,如果有登录信息,则用guid更新标志,如果没有,新增一条登录信息,包括用户账号、标志、登录时间信息

第二步:   进入程序后用一个时钟来定期查询登录列表,查看标志信息是不是自己登录时所生成的标志。如果是说明没有在别的电脑上登录,如果不是,说明有人在其他电脑上登录了。

第三步:   检测到其它用户登录后弹出提醒,用户点击提醒后自动结束当前程序。

第四步:   如果是用户主动退出程序时,则清理掉登录缓存的信息

道理想通了代码实现起来就非常简单了,一条查询数据表的函数就解决问题了。

 private void T_Check_Tick(object sender, EventArgs e)
{
//检测是否有其它用户登录,0表示已经有其它用户登录了
string sql = "select count(*) from 收据_登录缓存 where session='"+session+"'";
int x=Convert.ToInt32(hr.executeOneSQL(sql,""));
if (x == 0)
{
T_Check.Enabled = false;
MessageBox.Show(tm.info6, "退出提醒", MessageBoxButtons.OK, MessageBoxIcon.Information);
System.Environment.Exit(0);
}
}

  

c# winform实现同时只允许账号在一台电脑登录的功能的更多相关文章

  1. ebay如何确定同一电脑登陆了多个账号,以及同一账号登陆过多台电脑

    转自hilton 的BLOG http://jimqu.blog.51cto.com/105370/654691 一切要从ebay的买家保护说起 ebay作为一个电子商务平台,之所以可以汇聚如此众多的 ...

  2. php 实现同一个账号同时只能一个人登录

    php 实现同一个账号同时只能一个人登录 张映 发表于 2015-01-22 分类目录: php 标签:mysql, nginx, openfire, php, redis 以前考虑过这个问题,今天实 ...

  3. Windows下Git多账号配置,同一电脑多个ssh-key的管理

    这一篇文章是对上一篇文章<Git-TortoiseGit完整配置流程>的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有一些提到一些基础的操作. <Git-Tort ...

  4. Winform(C#.NET)自动更新组件的使用及部分功能实现

    声明:核心功能的实现是由园子里圣殿骑士大哥写的,本人是基于他核心代码,按照自己需求进行修改的.   而AutoUpdaterService.xml文件生成工具是基于评论#215楼 ptangbao的代 ...

  5. git同时存在两个账号(在同一台电脑上)——三步完成

    目录 1.首先是常规设置 2.同时添加两个账号 3.最后一步,配置~/.ssh/config文件 4.补充:有时因为设置了全局账号,因此需要清除 由于本人有连个git账号,个人github账号和公司g ...

  6. 【亲测可用,亦可配置同一平台的不同账号,例如阿里云的两个不同账号】Windows下Git多账号配置,同一电脑多个ssh-key的管理

    Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章<Git-TortoiseGit完整配置流程>的拓展,所以需要对上一篇文章有所了解,当然直接 ...

  7. Winform(C#.NET)自动更新组件的使用及部分功能实现(一点改进功能)

    接前两篇继续: Winform(C#.NET)自动更新组件的使用及部分功能实现 Winform(C#.NET)自动更新组件的使用及部分功能实现(续) 借鉴文章:http://www.cnblogs.c ...

  8. Winform(C#.NET)自动更新组件的使用及部分功能实现(续)

    接昨天的文章Winform(C#.NET)自动更新组件的使用及部分功能实现 强制更新的实现部分: 将DownloadConfirm窗体修改成单纯的类 public class DownloadConf ...

  9. 一台电脑,两个及多个git账号配置

    1. 生成两[三]个ssh公钥私钥 方法参照:http://www.cnblogs.com/fanbi/p/7772812.html第三步骤 假定其中一个是id_rsa, 另一个时id_rsa_two ...

随机推荐

  1. GNU/Linux操作系统总览

    计算机科学本科的专业课包括高等数学.离散数学.模拟电子技术.数字电子技术.微机原理.汇编语言原理.高级程序语言.操作系统原理.高级编译原理.嵌入式原理.网络原理.计算机组成与结构等诸多科目.GNU计算 ...

  2. 如何去掉Myeclipse对JS等文件的验证

    或 MyEclipse->validation->Excluded Resource下找到不需要验证的文件或者文件夹 或 右键点击该项目-->MyEclipse-->Exclu ...

  3. 基本SQL命令 (1.SQL命令使用规则/2.库管理/3.表管理/4.表记录管理/5.更改库,库的默认字符集/6.连接数据库的过程/7.数据类型)

    1.SQL命令的使用规则       1.每条命令必须以 ; 结尾       2.SQL命令不区分字母大小写       3.使用 \c 终止SQL命令的执行 2.库的管理     1.库的基本操作 ...

  4. 如何用keytool导入证书

    先用cmd定位到 jre\lib目录下的security文件夹   例如 C:\Program Files\Java\jre1.8.0_191\lib\security 运行cmd,导入证书 keyt ...

  5. XP下安装IIS的图文教程(无光盘)

    IIS5.1安装文件包下载地址:http://yunpan.cn/QzBZGugw84wEr 安装记录: 1. 将IIS5.1安装文件包解压 2. 开始-->控制面板-->添加/删除程序- ...

  6. 在SharePoint解决方案中使用JavaScript (2) – 模块化

    本文是在SharePoint中使用JavaScript的第二篇文章,前面的文章包括: 在SharePoint解决方案中使用JavaScript (0) 在SharePoint解决方案中使用JavaSc ...

  7. solr配置相关:约束文件及引入ik分词器

    schema.xml: solr约束文件 Solr中会提前对文档中的字段进行定义,并且在schema.xml中对这些字段的属性进行约束,例如:字段数据类型.字段是否索引.是否存储.是否分词等等 < ...

  8. nodejs中yield的用法?

    nodejs中yield的用法? https://www.zhihu.com/question/32752866?sort=created

  9. nginx 多域名配置,采用多配置文件的方式

    nginx 中多域名配置,目前采用多配置文件的方式. 配置过程比较简单. 首先在 nginx 目录下创建子目录 vhosts . 在 vhosts 目录中创建对应域名的配置文件.如有域名 898hi. ...

  10. 【sdut2878】Circle

    题目链接http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/2878.html 题意 n个结点编号为0 ...