zoukankan      html  css  js  c++  java
  • 避免一个用户多次登陆的解决方法

    方法一,直接修改Info类的StartupPost方法,因为我们修改比较复杂,以下我就直接引用junevoful的代码来做范例。

    void startupPost()

    {

        int         counter;

        int         num = 0;

        int         maxSessions = Info::licensedUsersTotal();

        xSession    session;

        UserInfo    userInfo;

        UserId      currentUserId;

        ;

     

        currentUserId = curuserid();

        for(counter = 1; counter < maxSessions;counter++ )

        {

            session = new xSession(counter, true);

            if(session && session.userId())

            {

                select firstOnly userInfo

                    where userInfo.id == session.userId();

     

                if (userInfo && (currentUserId == session.userId()))

                { 

                    num++ ;

                }

            }

        }

     

        if (num > 1)

        {

            box::info("此用户ID已经登陆,请退出。")

            {

                infolog.shutDown(true);

            }

        }

    }

     

    方法二,是方法一的进一步改进,也是我们在使用的。

    不同的部门可能有不同的上班时间,这样在licence有限的情况下,可能较早上班的部门会登陆较多的人,而较晚上面的部门就无法登陆。为了避免这种不公平的现象发生,我们事先在SysUserInfo表新建一个部门的字段,然后在建立了一个表,来说明每一个部门可以同时登陆的人数。之后就用类似于方法一的代码来控制登陆的人数。

  • 相关阅读:
    IDEA 工具 破解码
    postman 使用 及断言
    MonkeyTest 命名
    Jmeter 测试单元的封装与复用
    开发性能测试工具——自己动手实现迭代功能
    jemter安装mysql数据驱动JDBC
    全链路性能测试知识点整理
    Java接口全链路优化:如何降低接口RT时长(转)
    测试自动化之Mock服务思路探讨
    算法分析与设计(一)时间与空间复杂度
  • 原文地址:https://www.cnblogs.com/Fandyx/p/2761593.html
Copyright © 2011-2022 走看看