Exemplo n.º 1
0
        public ActionResult SignIn(string phone, string password)
        {
            if (string.IsNullOrEmpty(phone) || string.IsNullOrEmpty(password))
            {
                return(Json(new { Success = false, Message = "手机号和密码不能为空" }));
            }

            var entity = new AccountSign()
            {
                MobilePhone = phone,
                Password    = password
            };

            UserPassport userPassport = null;
            var          success      = AccountAuthentication.SignIn(phone, password, null, out userPassport);

            if (!success)
            {
                return(Json(new { Success = false, Message = "手机号或密码错误" }));
            }

            var account = AnonymousAccount.FindLastByPassport(userPassport.PassportId);

            if (account == null)
            {
                return(Json(new { Success = false, Message = "Token已失效" }));
            }

            CookieHelper.SetCookie(AccountAuthentication.TokenKey, account.Token.AccessToken);
            return(Json(new { Success = true, Message = "登陆成功" }));
        }
Exemplo n.º 2
0
        public void SignInTest()
        {
            var accountSign = new AccountSign()
            {
                MobilePhone = string.Format("171{0}", new Random().Next(12345678, 98765432)),
                Password    = string.Format("pwd{0}", new Random().Next(12345, 98765))
            };

            var entity = ApiTestBase.SignUp(accountSign);

            var responseResult = WebApiClient.HttpPost(ApiEnvironment.Account_SignIn_Endpoint, accountSign);

            Assert.AreEqual(HttpStatusCode.OK, responseResult.StatusCode);
            Console.WriteLine(responseResult.Content);

            var signResult = responseResult.Content.ConvertEntity <AccountSignResult>();

            Assert.IsNotNull(signResult);
            Assert.AreEqual(SignStatus.Success, signResult.SignStatus);
            Assert.IsNotNull(signResult.Account);

            // Error password
            accountSign.Password += "000";
            responseResult        = WebApiClient.HttpPost(ApiEnvironment.Account_SignIn_Endpoint, accountSign);
            Assert.AreEqual(HttpStatusCode.OK, responseResult.StatusCode);
            signResult = responseResult.Content.ConvertEntity <AccountSignResult>();
            Assert.IsNotNull(signResult);
            Assert.AreEqual(SignStatus.InvalidPassword, signResult.SignStatus);
        }
Exemplo n.º 3
0
        public void ResetPasswordTest()
        {
            var accountSign = new AccountSign()
            {
                MobilePhone = "18900999900", Password = "******", ValidationCode = "1232"
            };
            var responseResult = WebApiClient.HttpPost(ApiEnvironment.Account_ResetPassword_Endpoint, accountSign);

            Assert.AreEqual(HttpStatusCode.OK, responseResult.StatusCode);
            Console.WriteLine(responseResult.Content);

            var signResult = responseResult.Content.ConvertEntity <AccountSignResult>();

            Assert.IsNotNull(signResult);
            Assert.AreEqual(SignStatus.InvalidValidationCode, signResult.SignStatus);

            accountSign = new AccountSign()
            {
                MobilePhone = "18900999900", Password = "******", ValidationCode = "FRUIT1204"
            };
            responseResult = WebApiClient.HttpPost(ApiEnvironment.Account_ResetPassword_Endpoint, accountSign);
            Assert.AreEqual(HttpStatusCode.OK, responseResult.StatusCode);
            signResult = responseResult.Content.ConvertEntity <AccountSignResult>();
            Assert.IsNotNull(signResult);
            Assert.AreEqual(SignStatus.InvalidMobilePhone, signResult.SignStatus);


            responseResult = WebApiClient.HttpPost(ApiEnvironment.Account_ResetPassword_Endpoint, accountSign);
        }
Exemplo n.º 4
0
        public ActionResult ShortcutSignIn(string phone, string code)
        {
            if (string.IsNullOrEmpty(phone) || string.IsNullOrEmpty(code))
            {
                return(Json(new { Success = false, Message = "手机号和验证码不能为空" }));
            }

            var entity = new AccountSign()
            {
                MobilePhone    = phone,
                ValidationCode = code
            };

            var signResult = new AccountController().ShortcutSignIn(entity);

            if (signResult.SignStatus != SignStatus.Success)
            {
                return(Json(new { Success = false, Message = "验证码错误" }));
            }

            var account = AnonymousAccount.FindLastByPassport(signResult.Account.PassportId);

            if (account == null)
            {
                return(Json(new { Success = false, Message = "Token已失效" }));
            }

            CookieHelper.SetCookie(AccountAuthentication.TokenKey, account.Token.AccessToken);
            return(Json(new { Success = true, Message = "登陆成功" }));
        }
Exemplo n.º 5
0
 public Subtotal(String language, String key, Decimal value, AccountSign sign)
 {
     Language = language;
     Key      = key;
     Value    = value;
     Sign     = sign;
 }
Exemplo n.º 6
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.º 7
0
        public bool ChangePassword([FromBody] AccountSign entity)
        {
            if (entity == null || string.IsNullOrEmpty(entity.Password))
            {
                return(false);
            }

            var isChanged = MemberShip.ChangePassword(MvcContext.Current.PassportId, entity.Password);

            return(isChanged);
        }
Exemplo n.º 8
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
            });
        }
Exemplo n.º 9
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static AccountSignResult SignUp()
        {
            var accountSign = new AccountSign()
            {
                MobilePhone         = string.Format("199{0}", new Random().Next(12345678, 98765432)),
                Password            = string.Format("pwd{0}", new Random().Next(12345678, 98765432)),
                SelectedProfileType = ProfileType.OrganizationProfile
            };

            return(SignUp(accountSign));
        }
Exemplo n.º 10
0
        public void InviteSignUpTest()
        {
            Console.WriteLine(ConfigurationManager.AppSettings["app:TestValidationCode"]);
            var accountSign = new AccountSign()
            {
                MobilePhone = string.Format("199{0}", new Random().Next(12345678, 98765432)),
                Password    = string.Format("pwd{0}", new Random().Next(12345678, 98765432)),
                InviteCode  = string.Format("Invite-{0}", Guid.NewGuid().ToString("N"))
            };
            var entity = ApiTestBase.SignUp(accountSign);

            Assert.IsNotNull(entity);
        }
Exemplo n.º 11
0
        public static AccountSignResult SignIn()
        {
            var accountSign = new AccountSign()
            {
                MobilePhone = "18900000001", Password = "******"
            };

            var responseResult = WebApiClient.HttpPost(ApiEnvironment.Account_SignIn_Endpoint, accountSign);

            Assert.AreEqual(HttpStatusCode.OK, responseResult.StatusCode);

            var signResult = responseResult.Content.ConvertEntity <AccountSignResult>();

            Assert.IsNotNull(signResult);
            Assert.AreEqual(SignStatus.Success, signResult.SignStatus);

            return(signResult);
        }
Exemplo n.º 12
0
        public static AccountSignResult SignUp(AccountSign accountSign)
        {
            accountSign.ValidationCode = ConfigurationManager.AppSettings["app:TestValidationCode"];
            var responseResult = WebApiClient.HttpPost(ApiEnvironment.Account_SignUp_Endpoint, accountSign);

            Console.WriteLine("[{0}]{1}", responseResult.StatusCode, responseResult.Content);
            var entity = responseResult.Content.ConvertEntity <AccountSignResult>();

            Assert.IsNotNull(entity);
            if (entity.SignStatus != SignStatus.DuplicateMobilePhone)
            {
                Assert.IsNotNull(entity.Account);
                Assert.IsNotNull(entity.Account.Token);
                Assert.IsTrue(entity.Account.PassportId > 0);
            }

            return(entity);
        }
Exemplo n.º 13
0
        public void OpenCareerServiceTest()
        {
            var accountSign = new AccountSign()
            {
                MobilePhone = "181" + TestHelper.GetRndNumber(10000000, 90000000).ToString(),
                Password    = string.Format("jxl12345", new Random().Next(12345, 98765))
            };

            var signResult = SignUp(accountSign);

            if (signResult.SignStatus == SignStatus.DuplicateMobilePhone)
            {
                Console.WriteLine("{0} => {1}", accountSign.MobilePhone, signResult.ErrorMessage);
                return;
            }

            var accountResult = WebApiClient.HttpPost(ApiEnvironment.Consultant_OpenCareerService_Endpoint, new OrganizationProfile());

            Console.WriteLine("OpenCareerService => {0}", accountResult.Content);
        }
Exemplo n.º 14
0
        public void ExistsMobilePhoneTest()
        {
            var accountSign = new AccountSign()
            {
                MobilePhone = string.Format("171{0}", new Random().Next(12345678, 98765432)),
                Password    = string.Format("pwd{0}", new Random().Next(12345, 98765))
            };
            var responseResult = WebApiClient.HttpGet(ApiEnvironment.Account_ExistsMobilePhone_Endpoint + "?phone=" + accountSign.MobilePhone);

            if (HttpStatusCode.OK != responseResult.StatusCode)
            {
                Console.WriteLine(responseResult.Content);
            }
            Assert.AreEqual("false", responseResult.Content);

            ApiTestBase.SignUp(accountSign);

            responseResult = WebApiClient.HttpGet(ApiEnvironment.Account_ExistsMobilePhone_Endpoint + "?phone=" + accountSign.MobilePhone);
            if (HttpStatusCode.OK != responseResult.StatusCode)
            {
                Console.WriteLine(responseResult.Content);
            }
            Assert.AreEqual("true", responseResult.Content);
        }
Exemplo n.º 15
0
        public AccountSignResult SignIn(AccountSign entity)
        {
            if (null == entity || string.IsNullOrEmpty(entity.MobilePhone) || string.IsNullOrEmpty(entity.Password))
            {
                return(null);
            }
            var account = MvcContext.Current.ClientAccount;

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

            if (!string.IsNullOrEmpty(entity.InviteCode))
            {
                System.Web.HttpContext.Current.Items.Add(WorkplaceApplication.InviteCodeKey, entity.InviteCode);
            }
            UserPassport userPassport = null;
            var          isSignIn     = AccountAuthentication.SignIn(entity.MobilePhone, entity.Password, 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.º 16
0
        public AccountSignResult SignUp(AccountSign entity)
        {
            if (null == entity || string.IsNullOrEmpty(entity.MobilePhone) || string.IsNullOrEmpty(entity.Password) ||
                string.IsNullOrEmpty(entity.ValidationCode) || ProfileType.None == entity.SelectedProfileType)
            {
                this.ReturnPreconditionFailedMessage();
            }
            var account = MvcContext.Current.ClientAccount;

            if (null == account)
            {
                this.ReturnPreconditionFailedMessage();
            }

            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);
            }

            var signStatus = SignStatus.Error;

            var signedUpInfo = new SignedUpInfo()
            {
                InviteCode    = entity.InviteCode,
                SignedUpIp    = this.Request.GetClientIP(),
                HttpUserAgent = this.Request.GetUserAgent(),
                HttpReferer   = null == this.Request.Headers.Referrer ? "" : this.Request.Headers.Referrer.ToString()
            };
            var userPassport = AccountAuthentication.SignUp(entity.MobilePhone, entity.Password, entity.SelectedProfileType, signedUpInfo, out signStatus);

            var result = new AccountSignResult();

            result.SignStatus = signStatus;
            if (result.SignStatus == SignStatus.Success)
            {
                result.CreatedNewPassport = true;
                result.Account            = new AccountEntity(account, userPassport);
                result.AdditionalAction   = ProcessAdditionalAction(entity.AdditionalAction);

                WriteTokenToBrowser(result);
            }
            else
            {
                if (result.SignStatus == SignStatus.DuplicateMobilePhone)
                {
                    result.ErrorMessage = "手机号已经注册";
                }
                else
                {
                    result.ErrorMessage = "注册失败";
                }
            }

            return(result);
        }