Example #1
0
        /// <summary>
        /// 获取待切换用户信息
        /// </summary>
        public static OperationResult GetUserForSwitch(int id, out UserSessionModel userSession)
        {
            string sql = @"SELECT u.ID,RoleID,r.RoleName,r.RoleLevel,u.UserName,u.NickName,u.StrucID,u.VehicleViewMode FROM dbo.Users u
INNER JOIN dbo.Roles r ON u.RoleID=r.ID
INNER JOIN dbo.Structures s ON u.StrucID=s.ID
WHERE u.ID=@ID";
            List <SqlParameter> paras = new List <SqlParameter>()
            {
                new SqlParameter("@ID", SqlDbType.Int),
            };

            paras[0].Value = id;


            DataTable       dt     = MSSQLHelper.ExecuteDataTable(CommandType.Text, sql, paras.ToArray());
            OperationResult result = new OperationResult();

            userSession = null;
            if (dt == null)
            {
                result.Message = PromptInformation.DBError;
                return(result);
            }
            if (dt.Rows.Count == 0)
            {
                result.Message = PromptInformation.NotExists;
                return(result);
            }

            //获取到用户信息,组装session内容
            int    userID    = Convert.ToInt32(dt.Rows[0][0].ToString());
            int    roleID    = Convert.ToInt32(dt.Rows[0][1]);
            string roleName  = dt.Rows[0][2].ToString();
            int    roleLevel = Convert.ToInt32(dt.Rows[0][3]);

            userSession                 = new UserSessionModel();
            userSession.UserName        = dt.Rows[0][4].ToString();
            userSession.NickName        = dt.Rows[0][5].ToString();
            userSession.StrucID         = Convert.ToInt32(dt.Rows[0][6]);
            userSession.VehicleViewMode = string.IsNullOrEmpty(dt.Rows[0][7].ToString()) ? true : Convert.ToBoolean(dt.Rows[0][7]);
            userSession.UserId          = Convert.ToInt32(userID);
            userSession.RoleInfo        = new RoleInfoModel()
            {
                RoleID = roleID, RoleLevel = (RoleLevelEnum)roleLevel, RoleName = roleName
            };


            //获取用户功能信息
            List <FunctionsInfoModel> funcList = null;

            if (userSession.RoleInfo.RoleLevel == RoleLevelEnum.SuperAdmin)
            {
                funcList = FunctionBLL.GetAllFunctions();
            }
            else
            {
                funcList = FunctionBLL.GetFunctionsByUserID(userID);
            }
            if (funcList == null)
            {
                result.Message = Asiatek.Resource.PromptInformation.GetFunctionsError;
                return(result);
            }
            if (funcList.Count == 0)
            {
                result.Message = Asiatek.Resource.PromptInformation.NoFunctions;
                return(result);
            }

            userSession.Functions = funcList;
            result.Success        = true;
            return(result);
        }
Example #2
0
        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="user">用户登录数据</param>
        /// <param name="userSession">登录后返回的用户相关信息</param>
        /// <returns></returns>
        public static OperationResult Login(UserLoginModel user, out UserSessionModel userSession)
        {
            string sql = @"SELECT u.ID,RoleID,r.RoleName,r.RoleLevel,u.NickName,u.StrucID,u.VehicleViewMode FROM dbo.Users u
INNER JOIN dbo.Roles r ON u.RoleID=r.ID
INNER JOIN dbo.Structures s ON u.StrucID=s.ID
WHERE u.UserName=@UserName AND u.UserPassword=@UserPassword AND s.StrucAccount=@StrucAccount";
            List <SqlParameter> paras = new List <SqlParameter>()
            {
                new SqlParameter("@UserName", SqlDbType.VarChar, 20),
                new SqlParameter("@UserPassword", SqlDbType.Char, 32),
                new SqlParameter("@StrucAccount", SqlDbType.VarChar, 50),
            };

            paras[0].Value = user.UserName.Trim();
            paras[1].Value = MD5Helper.GetMD5Str(user.Password.Trim());
            paras[2].Value = user.StrucAccount.Trim();


            DataTable       dt     = MSSQLHelper.ExecuteDataTable(CommandType.Text, sql, paras.ToArray());
            OperationResult result = new OperationResult();

            userSession = null;
            if (dt == null)
            {
                result.Message = Asiatek.Resource.PromptInformation.LoginDBError;
                return(result);
            }
            if (dt.Rows.Count == 0)
            {
                result.Message = Asiatek.Resource.PromptInformation.LoginError;
                return(result);
            }

            //获取到用户信息,组装session内容
            int    userID    = Convert.ToInt32(dt.Rows[0][0].ToString());
            int    roleID    = Convert.ToInt32(dt.Rows[0][1]);
            string roleName  = dt.Rows[0][2].ToString();
            int    roleLevel = Convert.ToInt32(dt.Rows[0][3]);

            userSession          = new UserSessionModel();
            userSession.UserName = user.UserName.Trim();
            userSession.NickName = dt.Rows[0][4].ToString();
            userSession.StrucID  = Convert.ToInt32(dt.Rows[0][5]);
            userSession.UserId   = Convert.ToInt32(userID);
            userSession.RoleInfo = new RoleInfoModel()
            {
                RoleID = roleID, RoleLevel = (RoleLevelEnum)roleLevel, RoleName = roleName
            };
            userSession.VehicleViewMode = string.IsNullOrEmpty(dt.Rows[0][6].ToString()) ? true : Convert.ToBoolean(dt.Rows[0][6]);


            //获取用户功能信息
            List <FunctionsInfoModel> funcList = null;

            if (userSession.RoleInfo.RoleLevel == RoleLevelEnum.SuperAdmin)
            {
                funcList = FunctionBLL.GetAllFunctions();
            }
            else
            {
                funcList = FunctionBLL.GetFunctionsByUserID(userID);
            }
            if (funcList == null)
            {
                result.Message = Asiatek.Resource.PromptInformation.GetFunctionsError;
                return(result);
            }
            if (funcList.Count == 0)
            {
                result.Message = Asiatek.Resource.PromptInformation.NoFunctions;
                return(result);
            }

            userSession.Functions = funcList;
            result.Success        = true;
            return(result);
        }