Exemple #1
0
        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());
        }
Exemple #2
0
 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};
 }