//Post => api/User/ChangePassword public async Task <ActionResult> ChangePassword(PasswordsViewModel model) { try { var username = User.Claims.First(o => o.Type == "UserName").Value; var user = await _userManager.FindByNameAsync(username); if (user == null) { return(StatusCode(StatusCodes.Status404NotFound)); } var result = await _userManager.ChangePasswordAsync(user, model.CurrentPassword, model.NewPassword); if (result.Succeeded) { DeleteCookies(); _logger.LogInformation($"DateTime: {DateTime.Now} -- User {username} has changed the password"); _logger.LogInformation($"DateTime: {DateTime.Now} -- User {username} has forced to log out due to password change"); } return(Ok(result)); } catch (Exception e) { _logger.LogError($"DateTime:{DateTime.Now} -- Error:{e.Message}\n{e.StackTrace}"); return(StatusCode(StatusCodes.Status500InternalServerError, "Failed to get user data")); } }
public ShellViewModel( CreateMasterPasswordViewModel createMasterPasswordViewModel, EnterMasterPasswordViewModel enterMasterPasswordViewModel, Func <CreatePasswordViewModel> createPasswordViewModel, PasswordsViewModel passwordsViewModel, IEventAggregator eventAggregator, IPasswordsManager passwordsManager) { _createMasterPasswordViewModel = createMasterPasswordViewModel; _enterMasterPasswordViewModel = enterMasterPasswordViewModel; _createPasswordViewModel = createPasswordViewModel; _passwordsViewModel = passwordsViewModel; _eventAggregator = eventAggregator; _passwordsManager = passwordsManager; Items.AddRange(new Screen[] { _createMasterPasswordViewModel, _enterMasterPasswordViewModel, _passwordsViewModel }); }