Пример #1
0
 public UserController(IUserClient _userClient, IUserMenuClient _userMenuClient, IMenuClient _menuClient, IUserGroup _userGroup, IMenuFunctionClient menuFunctionClient, IUserFunctionClient userFunctionClient) : base(_userClient)
 {
     userClient          = _userClient;
     this.userMenuClient = _userMenuClient;
     this.menuClient     = _menuClient;
     this.userGroup      = _userGroup;
     _menuFunctionClient = menuFunctionClient;
     _userFunctionClient = userFunctionClient;
 }
Пример #2
0
 public TokenController(
     JWTTokenOptions tokenOptions,
     IUserClient _userClient,
     IUserFunctionClient _userFunctionClient)
 {
     _tokenOptions      = tokenOptions;
     userClient         = _userClient;
     userFunctionClient = _userFunctionClient;
 }
Пример #3
0
        /// <summary>
        /// 0成功 1用户不存在 2密码错误 3 验证码错误 4账号已冻结
        /// </summary>
        /// <param name="context"></param>
        /// <param name="name"></param>
        /// <param name="pwd"></param>
        /// <param name="verify"></param>
        /// <returns></returns>
        public static LoginResultEntity UserLogin(this HttpContext context, IUserClient userClient, IUserFunctionClient userFunctionClient, Func <CurrentUserEntity, string> tokenBuildFunc, string name = "", string pwd = "", string verify = "", LoginSource loginSource = LoginSource.Client, int userId = 0)
        {
            //验证码
            //var LoginValidateCode = context.Session.GetString("LoginValidateCode");
            //context.Session.Remove("LoginValidateCode");
            //if (string.IsNullOrEmpty(verify) || LoginValidateCode == null || !LoginValidateCode.Equals(verify, StringComparison.OrdinalIgnoreCase))
            //{
            //    return LoginResult.WrongVerify;
            //}

            CurrentUserEntity currentUser;

            if (userId != 0)
            {
                var findUser = userClient.FindById(new B2b.ComEntity.IdModel {
                    ID = userId
                }).Result;
                currentUser = new CurrentUserEntity()
                {
                    END_DATE      = findUser.END_DATE,
                    ID            = findUser.ID,
                    IS_MAIN       = findUser.IS_MAIN,
                    IS_WXIN_LOGIN = findUser.IS_WXIN_LOGIN,
                    MAIL          = findUser.MAIL,
                    MOBILE        = findUser.MOBILE,
                    PARTY_ID      = Convert.ToInt32(findUser.PARTY_ID),
                    PARTY_TYPE    = findUser.PARTY_TYPE,
                    REG_STATUS    = findUser.REG_STATUS,
                    START_DATE    = findUser.START_DATE,
                    USER          = findUser.USER,
                    USER_NAME     = findUser.USER_NAME
                };
            }
            else
            {
                if (loginSource == LoginSource.Client)
                {
                    currentUser = userClient.UserLogin(new LoginEntity {
                        USER = name, PASSWORD = pwd
                    }).Result;
                }
                else
                {
                    currentUser = userClient.ManagerUserLogin(new LoginEntity {
                        USER = name, PASSWORD = pwd
                    }).Result;
                }
            }
            if (currentUser == null || currentUser.ID == 0)
            {
                return(new LoginResultEntity(LoginResult.WrongLogin));
            }
            else
            {
                if (currentUser.REG_STATUS == "0")
                {
                    return(new LoginResultEntity(LoginResult.WaitAudit));
                }
                //用户有效性判断 (且"当前日期"在“生效日期START_DATE”与“失效日期END_DATE”之间)
                else if (currentUser.REG_STATUS == "2" || currentUser.START_DATE == null || DateTime.Now < currentUser.START_DATE || (currentUser.END_DATE != null && DateTime.Now >= currentUser.END_DATE))
                {
                    return(new LoginResultEntity(LoginResult.Closed));
                }

                var userFunctions = userFunctionClient.FindAllByEntity(new Dictionary <string, string> {
                    { "USER_ID", currentUser.ID.ToString() }
                }).Result;
                for (int i = 0; i < userFunctions.Count; i++)
                {
                    currentUser.UserFunctionEnabledList.Add(userFunctions[i].MENU_FUNCTION_CODE);
                }


                string token = tokenBuildFunc(currentUser);
                //context.Session.SetString("CurrentUser", JsonHelper.ToJson<CurrentUserEntity>(currentUser));
                logger.Debug(string.Format("用户id={0} Name={1}登录系统", currentUser.ID, currentUser.USER));

                userClient.LastLoginTimeReload(new ECP.B2b.ComEntity.IdModel {
                    ID = currentUser.ID
                });

                return(new LoginResultEntity(LoginResult.Success, token)
                {
                    userId = currentUser.ID
                });
            }
        }