none
winfrom只能让用户同一时间,一次登陆 RRS feed

  • 问题

  • 由于不是开源软件,所以,注册的用户,只能一个人同一时间使用,怎么做到这个呢?

     

    求助。

    2011年7月19日 4:48

答案

  • 如果前台用户是非正常下线呢?比如断电了?怎么处理呢?


    考虑两种办法:

    1)在Form_Closing事件中把IsLogIn设置为false。

    2)设定一个很长的时间:如果超过了,则被认为是断线了。重置IsLogin标识符


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年7月19日 5:02
    版主
  • 1 客户端做一个 timer 每隔一定时间告诉服务器“我还在线”,若超过指定时间服务器还未收到此消息则判定为离线。

     


    知识改变命运,奋斗成就人生!
    2011年7月19日 7:17
    版主
  • 你可以采用如下两种方法

    1. 通过tcp/ip建立SOCKET连接,进行判断,类似QQ那种方式,

    2.在数据库设置一个字段标识用户是否登陆,针对意外关闭软件的情况,可以采取如下办法进行处理

      在服务器端运行一个程序,判断客户端是否向服务器端发送信息,例如:客户端每隔五分钟向服务器发送信息,(可以更新数据库中表的时间字段),

      服务器端的监控程序判断所有已经登陆的客户端,如果某个客户端长时间未向服务器发送信息,将该客户端的登陆标识设为未登陆


    http://blog.csdn.net/zx13525079024
    2011年7月19日 7:40
  • dear

    不知您的架构如何?你可以描述一下目前的硬体/网路架构,以下几点您可参考

    1.若要让Client(Winform)有验证功能(依次只能一人登录),就必须要有一台Server来处理这些工作;若没验证成功则无法开启WinForm,验证失败的原因很多种,假设今天网路不通好了网路不通表示Winform无法进入功能画面,若该软体只能在线上操作是很难被市场接受的,会用Winform表示就是可以离线操作,除非这软体是要用在企业内部。

    2.当Client请求验证成功后,Server要登记此账号已登陆旗标,要安装资料库/或将其标写入实体挡案。

    3.当Client验证成功后,Server每间格时间要去查询Client是否断线,若Client回应逾时,Server改写登入旗标,将此账号踢出。


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2011年7月21日 5:04

全部回复

  • 由于不是开源软件,所以,注册的用户,只能一个人同一时间使用,怎么做到这个呢?

    你好:)

    在数据库“用户表”中应当增加新字段——IsLogin(bit类型)。

    每次登录时候判断IsLogin是不是true(数据表中为1)。

    如果true,表示已经登录;应该拒绝。

    否则才允许登录。


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年7月19日 4:49
    版主
  • 如果前台用户是非正常下线呢?比如断电了?怎么处理呢?
    2011年7月19日 4:54
  • 如果前台用户是非正常下线呢?比如断电了?怎么处理呢?


    考虑两种办法:

    1)在Form_Closing事件中把IsLogIn设置为false。

    2)设定一个很长的时间:如果超过了,则被认为是断线了。重置IsLogin标识符


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年7月19日 5:02
    版主
  • 1 客户端做一个 timer 每隔一定时间告诉服务器“我还在线”,若超过指定时间服务器还未收到此消息则判定为离线。

     


    知识改变命运,奋斗成就人生!
    2011年7月19日 7:17
    版主
  • 你可以采用如下两种方法

    1. 通过tcp/ip建立SOCKET连接,进行判断,类似QQ那种方式,

    2.在数据库设置一个字段标识用户是否登陆,针对意外关闭软件的情况,可以采取如下办法进行处理

      在服务器端运行一个程序,判断客户端是否向服务器端发送信息,例如:客户端每隔五分钟向服务器发送信息,(可以更新数据库中表的时间字段),

      服务器端的监控程序判断所有已经登陆的客户端,如果某个客户端长时间未向服务器发送信息,将该客户端的登陆标识设为未登陆


    http://blog.csdn.net/zx13525079024
    2011年7月19日 7:40
  • dear

    不知您的架构如何?你可以描述一下目前的硬体/网路架构,以下几点您可参考

    1.若要让Client(Winform)有验证功能(依次只能一人登录),就必须要有一台Server来处理这些工作;若没验证成功则无法开启WinForm,验证失败的原因很多种,假设今天网路不通好了网路不通表示Winform无法进入功能画面,若该软体只能在线上操作是很难被市场接受的,会用Winform表示就是可以离线操作,除非这软体是要用在企业内部。

    2.当Client请求验证成功后,Server要登记此账号已登陆旗标,要安装资料库/或将其标写入实体挡案。

    3.当Client验证成功后,Server每间格时间要去查询Client是否断线,若Client回应逾时,Server改写登入旗标,将此账号踢出。


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2011年7月21日 5:04