public AccountSignResult CreateNew(ClientDevice entity) { var result = new AccountSignResult(); result.SignStatus = SignStatus.None; if (null == entity || string.IsNullOrEmpty(entity.DeviceKey) || string.IsNullOrEmpty(entity.Product) || string.IsNullOrEmpty(entity.Brand)) { this.ReturnPreconditionFailedMessage(); } var account = AccountAuthentication.CreateNew(entity); if (null != account) { result.SignStatus = SignStatus.Success; result.Account = new AccountEntity(account, null); WriteTokenToBrowser(result); } else { result.SignStatus = SignStatus.Error; } return(result); }
public AccountSignResult BindThirdPassport(ThirdPassport entity) { if (null == entity || string.IsNullOrEmpty(entity.Platform) || string.IsNullOrEmpty(entity.PlatformPassportId)) { return(null); } var account = MvcContext.Current.ClientAccount; if (null == account) { return(null); } var signStatus = SignStatus.Error; UserPassport userPassport = AccountAuthentication.BindThirdPassport(entity, out signStatus); var result = new AccountSignResult(); result.SignStatus = signStatus; if (result.SignStatus == SignStatus.Success) { result.Account = new AccountEntity(account, userPassport); WriteTokenToBrowser(result); } else { result.ErrorMessage = "绑定账号失败"; } return(result); }
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); }
private void WriteTokenToBrowser(AccountSignResult signResult) { if (null == signResult || signResult.SignStatus != SignStatus.Success) { return; } if (null != this.Request.Headers.UserAgent) { if (signResult.Account.PassportId > 0) { CookieHelper.SetCookie(AccountAuthentication.TokenKey, signResult.Account.Token.AccessToken); } else { CookieHelper.SetCookie(AccountAuthentication.TokenKey, signResult.Account.Token.AccessToken, DateTime.MaxValue); } } }
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); }
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); }