コード例 #1
0
        //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"));
            }
        }
コード例 #2
0
        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
            });
        }