コード例 #1
0
 /// <summary>
 /// 获得用户
 /// </summary>
 /// <param name="strColName">列名</param>
 /// <param name="strValue">用户或帐号</param>
 /// <param name="binclude"></param>
 private static User GetUser(string strColName, string strValue, bool binclude)
 {
     User user = null;
     ViewUser vwUser = new ViewUser(true);
     vwUser.BaseCondition = binclude ? (strColName + "='" + strValue + "'") : (strColName + "='" + strValue + "' AND IsCancel = 1");
     if (vwUser.Count > 0)
     {
         user = vwUser.GetItem(0) as User;
     }
     return user;
 }
コード例 #2
0
        /// <summary>
        /// 登陆验证,返回验证结果
        /// 登陆成功:返回LoginResult.Succeed的枚举,同时返回对应的User
        /// 登陆失败:返回 LoginResult.UserIDError或LoginResult.PwdError的枚举,并且返回User为null
        /// </summary>
        /// <param name="strID">帐号</param>
        /// <param name="strPWD">密码</param>
        /// <param name="user">用户对象(帐号或密码错误,返回null)</param>
        /// <returns></returns>
        public static LoginResult Login(string strID, string strPWD, out User user)
        {
            ViewUser vwUser = new ViewUser(true);
            LoginResult emStatus = LoginResult.UserIDError;
            user = null;
            vwUser.BaseCondition = "a.UserID='" + strID + "'";
            switch (vwUser.Count)
            {
                case 0:
                    break;

                case 1:
                    user = vwUser.GetItem(0) as User;
                    if (user.PWD.Equals(strPWD, StringComparison.CurrentCultureIgnoreCase))//密码正确
                    {
                        emStatus = LoginResult.Succeed;
                    }
                    else
                    {
                        user = null;
                        emStatus = LoginResult.PwdError;
                    }
                    break;

                default:
                    throw (new Exception("存在多个帐号相同的用户"));
            }
            return emStatus;
        }
コード例 #3
0
 /// <summary>
 /// 根据部门ID获得用户,支持多个部门
 /// </summary>
 /// <param name="sDeptIDs">部门ID,用','连接</param>
 /// <returns></returns>
 public static ViewBase GetUserByDeptIDs(string sDeptIDs)
 {
     ViewBase vwUser = new ViewUser();
     vwUser.Field = @"DISTINCT a.ID,a.NO,a.Name,a.Domain,a.UserID,a.PWD,a.OfficePhone,a.MobilePhone,a.Email,a.SortNum,
                                         a.Remark,a.EditDate,D_Class,a.ID AS UID,a.UserID AS ADCode,
                                         CASE a.IsCancel WHEN '1' THEN '启用' ELSE '注销'END AS HideStatue";
     vwUser.BaseCondition = sDeptIDs.Length > 0 ? "b.FK_DeptID IN (" + sDeptIDs + ")" : "1<>1";
     return vwUser;
 }
コード例 #4
0
        /// <summary>
        /// 返回某部门(大于,小于,等于..)某角色的人员
        /// </summary>
        /// <param name="strRoleName">角色名称(多个以“,”分隔)</param>
        /// <param name="enumOp">操作符枚举</param>
        /// <param name="strDeptId">部门ID(多个以“,”分隔)</param>
        /// <param name="iFloorCode">iFCode:部门层 0自己,>0 子部门层数,-1所有</param>
        /// <returns></returns>
        public static ViewBase GetUserByRole(string strRoleName, Common.Operators enumOp, string strDeptId, int iFloorCode)
        {
            ViewUser vUser = new ViewUser(true);
            vUser.Field = @" Distinct a.ID,a.NO,a.Name,a.Domain,a.UserID,a.PWD,a.OfficePhone,a.MobilePhone,a.Email,a.SortNum,
                           a.Remark,a.EditDate,D_Class,a.ID AS UID,a.UserID AS ADCode,
                           CASE a.IsCancel WHEN '1' THEN '启用' ELSE '注销'END AS HideStatue";
            vUser.SetJoin();
            StringBuilder strWhere = new StringBuilder(100);
            strWhere.Append(" A.RecordStatus = 1 and RU.RecordStatus = 1 and R.RecordStatus = 1 and DPU.RecordStatus = 1 and A.IsCancel = 1 ");

            if (!string.IsNullOrEmpty(strRoleName))
            {
                string[] strRoleNames = strRoleName.Split(',');
                for (int i = 0; i < strRoleNames.Length; i++)
                {
                    if (enumOp == Common.Operators.ne)
                    {
                        strWhere.Append(" and R.Name " + Common.GetOperator(enumOp) + "'" + strRoleNames[i] + "'");
                    }
                    else
                    {
                        if (i == 0)
                        {
                            strWhere.Append(" and ( R.Name " + Common.GetOperator(enumOp) + "'" + strRoleNames[i] + "'");
                        }
                        else
                        {
                            strWhere.Append(" or R.Name " + Common.GetOperator(enumOp) + "'" + strRoleNames[i] + "'");
                        }
                    }
                }

                if (enumOp != Common.Operators.ne)
                {
                    strWhere.Append(" ) ");
                }
            }

            if(!string.IsNullOrEmpty(strDeptId))
            {
                strWhere.Append(" and DPU.FK_DeptID in ( ");
                string[] strDeptIds = strDeptId.Split(',');
                Department enDept = new Department();
                for (int i = 0; i < strDeptIds.Length; i++)
                {
                    strWhere.Append(strDeptIds[i] + "," + enDept.GetChildDeptID(int.Parse(strDeptIds[i]), iFloorCode));
                    if (!strWhere.ToString().EndsWith(","))
                    {
                        strWhere.Append(",");
                    }
                }
                strWhere.Remove(strWhere.Length - 1,1);
                strWhere.Append(" ) ");
            }

            vUser.BaseCondition = strWhere.ToString();
            return vUser;
        }
コード例 #5
0
 /// <summary>
 /// 获得所有非注销用户
 /// </summary>
 /// <returns></returns>
 public static ViewBase GetAllUser()
 {
     ViewBase vbUser = new ViewUser(true);
     vbUser.BaseCondition = "a.IsCancel = 1";
     return vbUser;
 }