public void ChangePassword(ChangePasswordParameter param) { using (var context = base.CreateUserContext()) { EmailAuth emailAuth = null; MobileAuth mobileAuth = null; if (param.AuthCode != null) { Guid emailAuthCode; if (Guid.TryParse(param.AuthCode, out emailAuthCode)) { emailAuth = this.CheckUserEmailAuth(context, emailAuthCode); } else { string[] mobileAuthCode = param.AuthCode.Split(','); if (mobileAuthCode.Length != 2) { throw new InvalidInvokeException("参数错误"); } mobileAuth = this.CheckUserMobileAuth(context, mobileAuthCode[0], int.Parse(mobileAuthCode[1])); param.UserName = mobileAuth.UserName; } } var id = this.SignIn(new SignInParameter() { AppID = param.AppID, UserName = param.UserName, Password = param.OldPassword }); if (!id.IsAuthenticated) { throw new InvalidInvokeException("账户不存在或密码错误"); } using (var scope = DbScope.Create()) { scope.BeginTransaction(); param.NewPassword = CryptoManaged.MD5Hex(param.NewPassword); context.Accounts.Update(t => t.RowID == id.UserID, t => new Account() { Password = param.NewPassword }); if (emailAuth != null) { emailAuth.Status = (int)ActivationStatus.Activated; } if (mobileAuth != null) { mobileAuth.Status = (int)ActivationStatus.Activated; } context.SaveChanges(); scope.Complete(); } } }
public async Task <bool> Execute(ChangePasswordParameter changePasswordParameter) { if (changePasswordParameter == null) { throw new ArgumentNullException(nameof(changePasswordParameter)); } var resourceOwner = await _userActions.GetUser(changePasswordParameter.Subject).ConfigureAwait(false); if (resourceOwner == null) { throw new IdentityServerException(Core.Errors.ErrorCodes.InternalError, Core.Errors.ErrorDescriptions.TheResourceOwnerDoesntExist); } var passwordSettings = await _credentialSettingActions.Get(Constants.AMR).ConfigureAwait(false); var opts = JsonConvert.DeserializeObject <PwdCredentialOptions>(passwordSettings.Options); if (opts.IsRegexEnabled) { var regex = new Regex(opts.RegularExpression, RegexOptions.Compiled); if (!regex.IsMatch(changePasswordParameter.NewPassword)) { throw new IdentityServerException(Core.Errors.ErrorCodes.InternalError, string.Format(Core.Errors.ErrorDescriptions.ThePasswordMustRespects, opts.PasswordDescription)); } } var credential = resourceOwner.Credentials.FirstOrDefault(c => c.Type == Constants.AMR); if (credential == null) { await _userActions.AddCredentials(new[] { new AddUserCredentialParameter { CredentialType = Constants.AMR, UserId = changePasswordParameter.Subject, Value = PasswordHelper.ComputeHash(changePasswordParameter.NewPassword) } }); return(true); } if (!string.IsNullOrWhiteSpace(credential.Value) && credential.Value != PasswordHelper.ComputeHash(changePasswordParameter.ActualPassword)) { throw new IdentityServerException(Core.Errors.ErrorCodes.InternalError, Core.Errors.ErrorDescriptions.ThePasswordIsNotCorrect); } await _userActions.UpdateCredential(new UpdateUserCredentialParameter { CredentialType = Constants.AMR, NewValue = PasswordHelper.ComputeHash(changePasswordParameter.NewPassword), UserId = resourceOwner.Id }).ConfigureAwait(false); return(true); }
public void ChangePassword(ChangePasswordParameter param) { param.OldPassword = HexPassword(param.OldPassword); param.NewPassword = HexPassword(param.NewPassword); using (var context = base.CreateContext()) { var entrty = context.UserInfoes.Where(m => m.UserName == param.UserName && m.Password == param.OldPassword).FirstOrDefault(); if (entrty == null) { throw new InvalidInvokeException("原始密码错误"); } entrty.Password = param.NewPassword; context.SaveChanges(); } }
public void ChangePassword(ChangePasswordParameter param) { var repository = new AdminRepository(); repository.ChangePassword(param); }
public UizaData ChangePassword(ChangePasswordParameter param) { param.DescriptionLink = DescriptionLinkUtility.GetDescriptionLink(DescriptionLinkConstants.USER.CHANGE_PASSWORD); return(this.PostRequest <UizaData>(Constants.ApiAction.USER_CHANGE_PASSWORD, param)); }
public void ChangePassword(ChangePasswordParameter param) { mgr.ChangePassword(param); }