Esempio n. 1
0
        public BaseUserInfo LogOnByOpenId(string openId, string ipAddress = null, string macAddress = null)
        {
            BaseUserInfo userInfo = null;

            // 用户没有找到状态
            this.ReturnStatusCode = StatusCode.UserNotFound.ToString();
            // 检查是否有效的合法的参数
            if (!String.IsNullOrEmpty(openId))
            {
                BaseUserManager userManager = new BaseUserManager(DbHelper);
                DataTable       dataTable   = userManager.GetDataTable(new KeyValuePair <string, object>(BaseUserEntity.FieldOpenId, openId));
                if (dataTable.Rows.Count == 1)
                {
                    BaseUserEntity userEntity = new BaseUserEntity(dataTable);
                    userInfo = this.LogOn(userEntity.UserName, userEntity.UserPassword, false, ipAddress, macAddress, false);
                }
            }
            return(userInfo);
        }
Esempio n. 2
0
        /// <summary>
        /// 激活帐户
        /// </summary>
        /// <param name="openId">唯一识别码</param>
        /// <param name="statusCode">返回状态码</param>
        /// <returns>用户实体</returns>
        public BaseUserInfo AccountActivation(string openId, out string statusCode)
        {
            // 1.用户是否存在?
            BaseUserInfo userInfo = null;

            // 用户没有找到状态
            statusCode = StatusCode.UserNotFound.ToString();
            // 检查是否有效的合法的参数
            if (!String.IsNullOrEmpty(openId))
            {
                BaseUserManager userManager = new BaseUserManager(DbHelper);
                List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >();
                parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldOpenId, openId));
                parameters.Add(new KeyValuePair <string, object>(BaseUserEntity.FieldDeletionStateCode, 0));
                DataTable dataTable = userManager.GetDataTable(parameters);
                if (dataTable.Rows.Count == 1)
                {
                    BaseUserEntity userEntity = new BaseUserEntity(dataTable);
                    // 3.用户是否被锁定?
                    if (userEntity.Enabled == 0)
                    {
                        statusCode = StatusCode.UserLocked.ToString();
                        return(userInfo);
                    }
                    if (userEntity.Enabled == 1)
                    {
                        // 2.用户是否已经被激活?
                        statusCode = StatusCode.UserIsActivate.ToString();
                        return(userInfo);
                    }
                    if (userEntity.Enabled == -1)
                    {
                        // 4.成功激活用户
                        statusCode = StatusCode.OK.ToString();
                        userManager.SetProperty(new KeyValuePair <string, object>(BaseUserEntity.FieldId, userEntity.Id), new KeyValuePair <string, object>(BaseUserEntity.FieldEnabled, 1));
                        return(userInfo);
                    }
                }
            }
            return(userInfo);
        }
Esempio n. 3
0
 /// <summary>
 /// 激活帐户
 /// </summary>
 /// <param name="openId">唯一识别码</param>
 /// <param name="statusCode">返回状态码</param>
 /// <returns>用户实体</returns>
 public BaseUserInfo AccountActivation(string openId, out string statusCode)
 {
     // 1.用户是否存在?
     BaseUserInfo userInfo = null;
     // 用户没有找到状态
     statusCode = StatusCode.UserNotFound.ToString();
     // 检查是否有效的合法的参数
     if (!String.IsNullOrEmpty(openId))
     {
         BaseUserManager userManager = new BaseUserManager(DbHelper);
         List<KeyValuePair<string, object>> parameters = new List<KeyValuePair<string, object>>();
         parameters.Add(new KeyValuePair<string, object>(BaseUserEntity.FieldOpenId, openId));
         parameters.Add(new KeyValuePair<string, object>(BaseUserEntity.FieldDeletionStateCode, 0));
         DataTable dataTable = userManager.GetDataTable(parameters);
         if (dataTable.Rows.Count == 1)
         {
             BaseUserEntity userEntity = new BaseUserEntity(dataTable);
             // 3.用户是否被锁定?
             if (userEntity.Enabled == 0)
             {
                 statusCode = StatusCode.UserLocked.ToString();
                 return userInfo;
             }
             if (userEntity.Enabled == 1)
             {
                 // 2.用户是否已经被激活?
                 statusCode = StatusCode.UserIsActivate.ToString();
                 return userInfo;
             }
             if (userEntity.Enabled == -1)
             {
                 // 4.成功激活用户
                 statusCode = StatusCode.OK.ToString();
                 userManager.SetProperty(new KeyValuePair<string, object>(BaseUserEntity.FieldId, userEntity.Id), new KeyValuePair<string, object>(BaseUserEntity.FieldEnabled, 1));
                 return userInfo;
             }
         }
     }
     return userInfo;
 }
Esempio n. 4
0
        /// <summary>
        /// 按主键获取用户列表
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="ids">主键数组</param>
        /// <returns>数据表</returns>
        public DataTable GetDataTableByIds(BaseUserInfo userInfo, string[] ids)
        {
            // 写入调试信息
            #if (DEBUG)
                int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod());
            #endif

            // 加强安全验证防止未授权匿名调用
            #if (!DEBUG)
                LogOnService.UserIsLogOn(userInfo);
            #endif

            DataTable dataTable = new DataTable(BaseStaffEntity.TableName);
            using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType))
            {
                try
                {
                    dbHelper.Open(UserCenterDbConnection);
                    BaseUserManager userManager = new BaseUserManager(dbHelper, userInfo);
                    dataTable = userManager.GetDataTable(BaseUserEntity.FieldId, ids, BaseUserEntity.FieldSortCode);
                    dataTable.TableName = BaseUserEntity.TableName;
                    BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.UserService_GetDataTableByIds, MethodBase.GetCurrentMethod());
                }
                catch (Exception ex)
                {
                    BaseExceptionManager.LogException(dbHelper, userInfo, ex);
                    throw ex;
                }
                finally
                {
                    dbHelper.Close();
                }
            }

            // 写入调试信息
            #if (DEBUG)
                BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart);
            #endif

            return dataTable;
        }
        private void btnConfirm_Click(object sender, EventArgs e)
        {
            if (this.CheckInput())
            {
                BaseUserManager userManager = new BaseUserManager(this.UserInfo);
                DataTable dtUser = userManager.GetDataTable(DbTypes.Access,this.SelectedIds);

                BaseUserEntity userEntity = null;
                foreach (DataRow dataRow in dtUser.Rows)
                {
                    userEntity = new BaseUserEntity(dataRow);
                    userEntity.CompanyId = this.ucCompany.SelectedId;
                    userEntity.CompanyName = this.ucCompany.SelectedFullName;
                    userEntity.SubCompanyId = this.ucSubCompany.SelectedId;
                    userEntity.SubCompanyName = this.ucSubCompany.SelectedFullName;
                    userEntity.DepartmentId = this.ucDepartment.SelectedId;
                    userEntity.DepartmentName = this.ucDepartment.SelectedFullName;
                    userEntity.WorkgroupId = this.ucWorkgroup.SelectedId;
                    userEntity.WorkgroupName = this.ucWorkgroup.SelectedFullName;
                    userManager.Update(userEntity);
                }
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
        }
Esempio n. 6
0
        /// <summary>
        /// 锁定用户
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="userName">用户名</param>
        /// <returns>是否成功锁定</returns>
        public bool LockUser(BaseUserInfo userInfo, string userName)
        {
            // 写入调试信息
            #if (DEBUG)
                int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod());
            #endif

            // 加强安全验证防止未授权匿名调用
            #if (!DEBUG)
                LogOnService.UserIsLogOn(userInfo);
            #endif

            bool returnValue = false;

            using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType))
            {
                try
                {
                    dbHelper.Open(UserCenterDbConnection);
                    BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.LogOnService_LockUser, MethodBase.GetCurrentMethod());
                    BaseUserManager userManager = new BaseUserManager(dbHelper, userInfo);
                    List<KeyValuePair<string, object>> parameters = new List<KeyValuePair<string, object>>();
                    parameters.Add(new KeyValuePair<string, object>(BaseUserEntity.FieldUserName, userName));
                    parameters.Add(new KeyValuePair<string, object>(BaseUserEntity.FieldEnabled, 1));
                    parameters.Add(new KeyValuePair<string, object>(BaseUserEntity.FieldDeletionStateCode, 0));
                    BaseUserEntity userEntity = new BaseUserEntity(userManager.GetDataTable(parameters));
                    // 判断是否为空的
                    if (userEntity != null && !string.IsNullOrEmpty(userEntity.Id))
                    {
                        // 被锁定15分钟,不允许15分钟内登录,这时间是按服务器的时间来的。
                        userEntity.LockStartDate = DateTime.Now;
                        userEntity.LockEndDate = DateTime.Now.AddMinutes(BaseSystemInfo.LockUserPasswordError);
                        returnValue = userManager.UpdateEntity(userEntity) > 0;
                    }
                }
                catch (Exception ex)
                {
                    BaseExceptionManager.LogException(dbHelper, userInfo, ex);
                    throw ex;
                }
                finally
                {
                    dbHelper.Close();
                }
            }

            // 写入调试信息
            #if (DEBUG)
                BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart, ConsoleColor.Yellow);
            #endif

            return returnValue;
        }
Esempio n. 7
0
        /// <summary>
        /// 获得用户列表
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <returns>数据表</returns>
        public DataTable GetUserDT(BaseUserInfo userInfo)
        {
            // 写入调试信息
            #if (DEBUG)
                int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod());
            #endif

            // 加强安全验证防止未授权匿名调用
            #if (!DEBUG)
                BaseSystemInfo.IsAuthorized(userInfo);
            #endif

            DataTable dataTable = new DataTable(BaseUserEntity.TableName);
            using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType))
            {
                try
                {
                    dbHelper.Open(UserCenterDbConnection);
                    // 检查用户在线状态(服务器专用)
                    BaseUserManager userManager = new BaseUserManager(dbHelper, userInfo);
                    userManager.CheckOnLine();
                    // 获取允许登录列表
                    List<KeyValuePair<string, object>> parameters = new List<KeyValuePair<string, object>>();
                    parameters.Add(new KeyValuePair<string, object>(BaseUserEntity.FieldEnabled, 1));
                    parameters.Add(new KeyValuePair<string, object>(BaseUserEntity.FieldDeletionStateCode, 0));
                    dataTable = userManager.GetDataTable(parameters, BaseUserEntity.FieldSortCode);
                    dataTable.TableName = BaseUserEntity.TableName;
                    BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.LogOnService_GetUserDT, MethodBase.GetCurrentMethod());
                }
                catch (Exception ex)
                {
                    BaseExceptionManager.LogException(dbHelper, userInfo, ex);
                    throw ex;
                }
                finally
                {
                    dbHelper.Close();
                }
            }

            // 写入调试信息
            #if (DEBUG)
                BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart);
            #endif

            return dataTable;
        }
        /// <summary>
        /// 按某个权限获取员工 数据表
        /// </summary>
        /// <param name="userId">管理用户主键</param>
        /// <param name="permissionItemCode">权限编号</param>
        /// <returns>数据表</returns>
        public DataTable GetUserDT(string userId, string permissionItemCode)
        {
            //string[] names = null;
            //object[] values = null;
            DataTable returnValue = new DataTable(BaseRoleEntity.TableName);
            // 这里需要判断,是系统权限?
            bool isRole = false;
            BaseUserManager userManager = new BaseUserManager(this.DbHelper, this.UserInfo);
            // 用户管理员,这里需要判断,是业务权限?
            isRole = userManager.IsInRoleByCode(userId, "UserAdmin") || userManager.IsInRoleByCode(userId, "Admin");
            if (isRole)
            {
                BaseUserManager manager = new BaseUserManager(this.DbHelper, this.UserInfo);

                List<KeyValuePair<string, object>> parameters = new List<KeyValuePair<string, object>>();
                parameters.Add(new KeyValuePair<string, object>(BaseUserEntity.FieldIsVisible, 1));
                parameters.Add(new KeyValuePair<string, object>(BaseUserEntity.FieldEnabled, 1));
                parameters.Add(new KeyValuePair<string, object>(BaseUserEntity.FieldDeletionStateCode, 0));

                returnValue = manager.GetDataTable(parameters, BaseModuleEntity.FieldSortCode);
                returnValue.TableName = this.CurrentTableName;
                return returnValue;
            }

            string sqlQuery = string.Empty;
            sqlQuery = " SELECT * FROM " + BaseUserEntity.TableName;
            sqlQuery += " WHERE " + BaseUserEntity.TableName + "." + BaseUserEntity.FieldDeletionStateCode + " = 0 "
                     + " AND " + BaseUserEntity.TableName + "." + BaseUserEntity.FieldIsVisible + " = 1 "
                     + " AND " + BaseUserEntity.TableName + "." + BaseUserEntity.FieldEnabled + " = 1 "
                     + " AND " + BaseUserEntity.TableName + "." + BaseUserEntity.FieldId + " IN ("
                     + this.GetUserIdsSql(userId, permissionItemCode)
                     + " ) "
                     + " ORDER BY " + BaseUserEntity.FieldSortCode;
            return DbHelper.Fill(sqlQuery);
        }
Esempio n. 9
0
        /// <summary>
        /// 重置用户访问情况
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="ids">日志主键</param>
        /// <returns>数据表</returns>
        public DataTable ResetVisitInfo(BaseUserInfo userInfo, string[] ids)
        {
            // 写入调试信息
            #if (DEBUG)
                int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod());
            #endif

            // 加强安全验证防止未授权匿名调用
            #if (!DEBUG)
                LogOnService.UserIsLogOn(userInfo);
            #endif

            DataTable dataTable = new DataTable(BaseLogEntity.TableName);
            using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType))
            {
                try
                {
                    dbHelper.Open(UserCenterDbConnection);
                    dbHelper.BeginTransaction();
                    BaseUserManager userManager = new BaseUserManager(dbHelper, userInfo);
                    // 重置访问情况
                    userManager.ResetVisitInfo(ids);
                    // 获取列表
                    dataTable = userManager.GetDataTable();
                    dataTable.TableName = BaseLogEntity.TableName;
                    BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.LogService_ResetVisitInfo, MethodBase.GetCurrentMethod());
                    dbHelper.CommitTransaction();
                }
                catch (Exception ex)
                {
                    dbHelper.RollbackTransaction();
                    BaseExceptionManager.LogException(dbHelper, userInfo, ex);
                    throw ex;
                }
                finally
                {
                    dbHelper.Close();
                }
            }

            // 写入调试信息
            #if (DEBUG)
                BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart);
            #endif
            return dataTable;
        }
Esempio n. 10
0
        /// <summary>
        /// 获取用户访问情况日志
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <returns>数据表</returns>
        public DataTable GetLogGeneral(BaseUserInfo userInfo)
        {
            // 写入调试信息
            #if (DEBUG)
                int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod());
            #endif

            // 加强安全验证防止未授权匿名调用
            #if (!DEBUG)
                LogOnService.UserIsLogOn(userInfo);
            #endif

            DataTable dataTable = new DataTable(BaseLogEntity.TableName);
            using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType))
            {
                BaseUserManager userManager = new BaseUserManager(dbHelper, userInfo);
                try
                {
                    dbHelper.Open(UserCenterDbConnection);
                    if (userInfo.IsAdministrator)
                    {
                        dataTable = userManager.GetDataTable();
                    }
                    else
                    {
                        BasePermissionScopeManager permissionScopeManager = new BasePermissionScopeManager(dbHelper, userInfo);
                        string[] userIds = permissionScopeManager.GetUserIds(userInfo.Id, "Resource.ManagePermission");
                        dataTable = userManager.GetDataTableByIds(userIds);
                    }
                    dataTable.TableName = BaseLogEntity.TableName;
                    BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.LogService_GetLogGeneral, MethodBase.GetCurrentMethod());
                }
                catch (Exception ex)
                {
                    BaseExceptionManager.LogException(dbHelper, userInfo, ex);
                    throw ex;
                }
                finally
                {
                    dbHelper.Close();
                }
            }

            // 写入调试信息
            #if (DEBUG)
                BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart);
            #endif
            return dataTable;
        }
Esempio n. 11
0
 public BaseUserInfo LogOnByUserName(string userName, string ipAddress = null, string macAddress = null)
 {
     BaseUserInfo userInfo = null;
     // 用户没有找到状态
     this.ReturnStatusCode = StatusCode.UserNotFound.ToString();
     // 检查是否有效的合法的参数
     if (!String.IsNullOrEmpty(userName))
     {
         BaseUserManager userManager = new BaseUserManager(DbHelper);
         DataTable dataTable = userManager.GetDataTable(new KeyValuePair<string, object>(BaseUserEntity.FieldUserName, userName));
         if (dataTable.Rows.Count == 1)
         {
             BaseUserEntity userEntity = new BaseUserEntity(dataTable);
             userInfo = this.LogOn(userEntity.UserName, userEntity.UserPassword, true, ipAddress, macAddress);
         }
     }
     return userInfo;
 }
        /// <summary>
        /// 获取委托列表
        /// </summary>
        /// <param name="permissionItemCode">操作权限编号</param>
        /// <param name="userId">用户主键</param>
        /// <returns>数据表</returns>
        public DataTable GetAuthorizeDT(string permissionItemCode, string userId = null)
        {
            if (userId == null)
            {
                userId = this.UserInfo.Id;
            }
            // 获取别人委托我的列表
            string permissionItemId = string.Empty;
            BasePermissionItemManager permissionItemManager = new BasePermissionItemManager(this.UserInfo);
            permissionItemId = permissionItemManager.GetIdByCode(permissionItemCode);
            BasePermissionScopeManager permissionScopeManager = new BasePermissionScopeManager(this.UserInfo);
            string[] names = new string[]{
                BasePermissionScopeEntity.FieldDeletionStateCode
                , BasePermissionScopeEntity.FieldEnabled
                , BasePermissionScopeEntity.FieldResourceCategory
                , BasePermissionScopeEntity.FieldPermissionItemId
                , BasePermissionScopeEntity.FieldTargetCategory
                , BasePermissionScopeEntity.FieldTargetId};
            Object[] values = new Object[] { 0, 1, BaseUserEntity.TableName, permissionItemId, BaseUserEntity.TableName, userId };
            // 排除过期的,此方法有性能问题,已经放到后台的Sql中处理。 comment by zgl on 2011-10-27
            //DataTable dt = permissionScopeManager.GetDataTable(names, values);
            //for (int i = 0; i < dt.Rows.Count; i++)
            //{
            //    if (!string.IsNullOrEmpty(dt.Rows[i][BasePermissionScopeEntity.FieldEndDate].ToString()))
            //    {
            //        // 过期的不显示
            //        if (DateTime.Parse(dt.Rows[i][BasePermissionScopeEntity.FieldEndDate].ToString()).Date < DateTime.Now.Date)
            //        {
            //            dt.Rows.RemoveAt(i);
            //            // dt 行数会减少
            //            i--;
            //        }
            //    }
            //}

            //排除过期的,已经放到后台的Sql中处理。
            DataTable dt = permissionScopeManager.GetAuthoriedList(BaseUserEntity.TableName, permissionItemId, BaseUserEntity.TableName, userId);
            string[] userIds = BaseBusinessLogic.FieldToArray(dt, BasePermissionScopeEntity.FieldResourceId);
            BaseUserManager userManager = new BaseUserManager(this.UserInfo);
            return userManager.GetDataTable(userIds);
        }
Esempio n. 13
0
 private void btnSetAsUserName_Click(object sender, EventArgs e)
 {
     BaseUserManager userManager = new BaseUserManager(this.UserInfo);
     DataTable dtUser = userManager.GetDataTable(this.SelectedIds);
     BaseUserEntity userEntity = null;
     foreach (DataRow dataRow in dtUser.Rows)
     {
         userEntity = new BaseUserEntity(dataRow);
         // 设置密码
         userManager.SetPassword(userEntity.Id.ToString(), userEntity.UserName.ToString());
     }
     this.Close();
 }