public IActionResult ChangePassword(string newPassword, string oldPassword) { using (var context = new RevojiDataContext()) { DBAppUser dbAppUser = context.Get <DBAppUser>(ApiUser.ID); if (dbAppUser == null) { return(new NotFoundResult()); } if (!dbAppUser.isPasswordCorrect(oldPassword)) { return(new UnprocessableEntityResult()); } dbAppUser.SetPassword(newPassword); context.Save(); return(Ok()); } }
Task IResourceOwnerPasswordValidator.ValidateAsync(ResourceOwnerPasswordValidationContext context) { using (var dbctx = new RevojiDataContext()) { if (context.UserName == null || context.Password == null) { context.Result = new GrantValidationResult(TokenRequestErrors.InvalidRequest, "missing_arguments_error"); return(Task.FromResult <object>(null)); } DBAppUser dbAppUser = dbctx.AppUsers.FirstOrDefault(au => au.Handle == context.UserName); if (dbAppUser == null || !dbAppUser.isPasswordCorrect(context.Password)) { context.Result = new GrantValidationResult(TokenRequestErrors.InvalidGrant, "invalid_handle_password_error"); return(Task.FromResult <object>(null)); } var claim = new Claim(ClaimTypes.Name, dbAppUser.Handle); var claims = new List <Claim>(); claims.Add(claim); context.Result = new GrantValidationResult(dbAppUser.Handle, "access_token", claims); return(Task.FromResult <object>(null)); } }