public async Task <IActionResult> ChangePassword(ChangePasswordViewModel model) { if (ModelState.IsValid) { var data = new ChangeCredential { UserID = model.UserId, OldCredential = string.IsNullOrWhiteSpace(model.OldPassword)? null: CryptoHelper.CreateCredential(model.OldPassword), NewCredential = string.IsNullOrWhiteSpace(model.NewPassword)? null: CryptoHelper.CreateCredential(model.NewPassword) }; try { await _userManager.ChangeCredential(data); return(RedirectToAction(nameof(Index))); } catch (Exception ex) { ModelState.AddModelError("", "修改口令没有成功:" + ex.Message); } } return(View(model)); }
async Task CreateNewUserAsync() { Random r = new Random(); User newUser = new User() { ActiveStatus = true, Login = "******" + r.Next(10000), Name = "CH" + r.Next(10000), Role = (int)RoleEnum.HumanResourceAdmin }; ApiResult <int> apiResult = await _connector.PostAsync <User, int>("api/User/SaveUser", newUser); if (apiResult.IsSuccess) { Console.WriteLine("Create a new user: id=" + apiResult.GetData().ToString()); //change credential ChangeCredential changeCredential = new ChangeCredential() { UserID = apiResult.GetData(), OldCredential = string.Empty, NewCredential = CryptoHelper.CreateCredential("P@55w0rd") }; ApiResult <bool> setPwdResult = await _connector.PostAsync <ChangeCredential, bool>("api/User/ChangeCredential", changeCredential); if (setPwdResult.IsSuccess && setPwdResult.GetData()) { Console.WriteLine("the password for this user has been set."); } else { Console.WriteLine("set password failed."); } } else { Console.WriteLine("Create new user failed, err=" + apiResult.Message); } }
public async Task <ActionResult <ApiResult <bool> > > ChangeCredential() { using StreamReader sr = new StreamReader(Request.Body); try { ChangeCredential changeCredential = SerializationHelper.JsonDeserialize <ChangeCredential>( await sr.ReadToEndAsync()); DataTable dataTable = await Connector.ExecuteSqlQueryTable( "SELECT [Password] FROM [tb_user] WHERE [UserID]=@userId", new SqlParameter("@userId", changeCredential.UserID)); if (dataTable == null || dataTable.Rows.Count == 0) { throw new Exception("没有找到用户。"); } string oldCredential = Convert.ToString(dataTable.Rows[0]["Password"]); if (string.IsNullOrEmpty(oldCredential) || oldCredential.Equals(changeCredential.OldCredential)) { //用户当前口令为空白,或者输入旧口令一致,允许修改 await Connector.ExecuteSqlNonQuery( "UPDATE [tb_user] SET [Password]=@password WHERE [UserID]=@userId", new SqlParameter("@password", changeCredential.NewCredential), new SqlParameter("@userId", changeCredential.UserID)); return(Success(true)); } else { throw new Exception("提交的原始口令不相符"); } } catch (Exception ex) { return(Error <bool>(ex.Message)); } }
public async Task <GenericResponse> Put(ChangeCredential changeCredential) { UserService userService = new UserService(_iconfiguration, _unicastEmailSender); try { var result = await userService.ChangePassword(changeCredential.loginId, changeCredential.newPassword, changeCredential.oldpassword); GenericResponse genericResponse = new GenericResponse(); genericResponse.status = "success"; genericResponse.Message = result; return(genericResponse); } catch (Exception ex) { var error = new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent(ex.Message) }; throw new System.Web.Http.HttpResponseException(error); } }
public async Task <bool> ChangeCredential(ChangeCredential credential) { return(await _connector.HttpPost <ChangeCredential, bool>(ROUTE_CHANGE_CREDENTIAL, credential)); }