Exemplo n.º 1
0
        public AccountSignResult ShortcutSignIn(AccountSign entity)
        {
            if (null == entity || string.IsNullOrEmpty(entity.MobilePhone) || string.IsNullOrEmpty(entity.ValidationCode))
            {
                return(null);
            }
            var account = MvcContext.Current.ClientAccount;

            if (null == account)
            {
                return(null);
            }

            var passportId = UserPassport.FindIdByMobilePhone(entity.MobilePhone);

            if (passportId == 0)
            {
                entity.Password = HashHelper.ComputeHash(entity.MobilePhone, HashAlgorithmName.SHA1).Substring(0, 6);
                return(SignUp(entity));
            }

            var isValid = MessageHelper.CheckSMSValidationCode(entity.MobilePhone, entity.ValidationCode);

            if (MvcContext.Current.Test && entity.ValidationCode == AppEnvironment.TestValidationCode)
            {
                isValid = true;
            }
            if (false == isValid)
            {
                return(new AccountSignResult()
                {
                    SignStatus = SignStatus.InvalidValidationCode,
                    ErrorMessage = "验证码无效,请重新获取"
                });
            }
            if (!string.IsNullOrEmpty(entity.InviteCode))
            {
                System.Web.HttpContext.Current.Items.Add(WorkplaceApplication.InviteCodeKey, entity.InviteCode);
            }
            UserPassport userPassport = null;
            var          isSignIn     = AccountAuthentication.SignIn(passportId, new SignedInLog(), out userPassport);

            var result = new AccountSignResult();

            result.SignStatus = isSignIn ? SignStatus.Success : SignStatus.InvalidPassword;
            if (result.SignStatus == SignStatus.Success)
            {
                result.Account          = new AccountEntity(account, userPassport);
                result.AdditionalAction = ProcessAdditionalAction(entity.AdditionalAction);

                WriteTokenToBrowser(result);
            }
            else
            {
                result.ErrorMessage = "用户名或密码错误";
            }
            return(result);
        }
Exemplo n.º 2
0
        public bool ExistsMobilePhone(string phone)
        {
            if (string.IsNullOrEmpty(phone))
            {
                return(false);
            }
            var passportId = UserPassport.FindIdByMobilePhone(phone);

            return(passportId > 0);
        }
Exemplo n.º 3
0
        public AccountSignResult ResetPassword(AccountSign entity)
        {
            if (null == entity || string.IsNullOrEmpty(entity.MobilePhone) ||
                string.IsNullOrEmpty(entity.Password) || string.IsNullOrEmpty(entity.ValidationCode))
            {
                return(null);
            }
            var account = MvcContext.Current.ClientAccount;

            if (null == account)
            {
                return(null);
            }

            var isValid = MessageHelper.CheckSMSValidationCode(entity.MobilePhone, entity.ValidationCode);

            if (MvcContext.Current.Test && entity.ValidationCode == AppEnvironment.TestValidationCode)
            {
                isValid = true;
            }
            if (false == isValid)
            {
                return(new AccountSignResult()
                {
                    SignStatus = SignStatus.InvalidValidationCode,
                    ErrorMessage = "验证码无效,请重新获取"
                });
            }

            var passportId = UserPassport.FindIdByMobilePhone(entity.MobilePhone);

            if (passportId < 1)
            {
                return(new AccountSignResult()
                {
                    SignStatus = SignStatus.InvalidMobilePhone,
                    ErrorMessage = "手机号未注册"
                });
            }

            var isChanged = MemberShip.ChangePassword(passportId, entity.Password);

            if (isChanged)
            {
                return(new AccountSignResult()
                {
                    SignStatus = SignStatus.Success
                });
            }
            return(new AccountSignResult()
            {
                SignStatus = SignStatus.Failed
            });
        }