public async Task <IActionResult> SetPassword(Guid guid, [FromBody] SetPasswordPostModel pwModel) { var shortLink = Db.ShortLinks.Find(guid); if (shortLink == null) { return(NotFound(ErrorModel.NotFound())); } if (pwModel.Reset) { shortLink.PasswordHash = default; shortLink.IsPasswordProtected = false; return(Ok()); } if (pwModel.Password.IsEmpty()) { return(BadRequest(ErrorModel.BadRequest("empty password"))); } shortLink.PasswordHash = Hashing.CreatePasswordHash(pwModel.Password); shortLink.IsPasswordProtected = true; Db.ShortLinks.Update(shortLink); await Db.SaveChangesAsync(); return(Ok()); }
public ActionResult SetPassword (SetPasswordPostModel model) { var result = new SetPasswordPostResult(); using(WebDbContext db = DbContextFactory.CreateDbContext()) { Account acc; if (TokenXCodeValidation.Validate(model, db, out acc)) { if(acc.Password != model.OldPassword) throw new HttpException("旧密码不符了"); acc.Password = model.NewPassword; db.SaveChanges(); } else { throw new HttpException(Resources.ErrorReLogin); } } return new JsonResult {Data = result}; }