zoukankan      html  css  js  c++  java
  • 一个奇怪的问题

    今天遇到一个奇怪的问题,在这里登记一下,备查。版本Dynamics AX2009 RU7

    为了限定用户多次登录系统,在info类的startupPost方法里写了一段代码:

    void restrictLoginTwice()
    {
        // To restrict user login form second login
        xSession session;
        SysClientSessions SysClientSessions;
        UserId currentUserId;
        int counter;

        ;

        currentUserId = curUserId();

        if(currentUserId!="Admin")// Allow Admin User to login multiple time
        {
             while select SysClientSessions
             where SysClientSessions.userId == currentUserId &&
             SysClientSessions.Status == 1 // 1 : Login 0 : Logout
             {
                 session = new xSession(SysClientSessions.SessionId, true);
                 if (session && session.userId())
                    counter++;

             }
         }

         if(counter>=2)
         {            
                infolog.shutDown(true);
         }
    }

    在实际使用的过程中发现,这段代码对某些用户组可以限定只能登录一次,但某些用户组这段代码好像失效了,可以多次登录。

    经过反复测试发现,如果用户组没有如下图所示的权限,运行这段代码查询表SysClientSessions的时候就会出现异常,直接跳过。

    下面的四个窗体不需要赋权限,只需要选中每日这个节点给予权限。

    如果没有给予权限,在查询SysClientSessions表的时候就会出现异常,并且不会给任何异常信息。

    这个问题很容易重现,选一个用户组,没有管理->每日的权限,写一个job查询表SysClientSessions表,就会出现异常了。

    所以要正确查询SysclientSessions,需要有这个权限。

    至于为什么,不晓得。

  • 相关阅读:
    python学习笔记七--数据操作符
    ggplot2入门与进阶(下)
    ggplot2入门与进阶(上)
    ggplot2绘制Excel所有图
    机器学习中的数学-强大的矩阵奇异值分解(SVD)及其应用
    奇异值分解(SVD)原理详解及推导
    玩深度学习选哪块英伟达 GPU?有性价比排名还不够!
    深度学习主机攒机小记
    日志分析方法概述 & Web日志挖掘分析的方法
    python中matplotlib的颜色及线条控制
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/2679619.html
Copyright © 2011-2022 走看看