public LoginController( IUserSessionStore userSessionStore = null, IUserStore userStore = null, IUserPasswordValidator userPasswordValidator = null) { _userSessionStore = userSessionStore ?? new UserSessionStore(); _userStore = userStore ?? new UserStore(); _userPasswordValidator = userPasswordValidator ?? new UserPasswordValidator(); }
public ChangePasswordController( IChangePasswordRequestValidator changePasswordRequestValidator = null, IUserPasswordValidator userPasswordValidator = null, IUserStore userStore = null, IUserSessionStore userSessionStore = null) { _changePasswordRequestValidator = changePasswordRequestValidator ?? new ChangePasswordRequestValidator(); _userPasswordValidator = userPasswordValidator ?? new UserPasswordValidator(); _userStore = userStore ?? new UserStore(); _userSessionStore = userSessionStore ?? new UserSessionStore(); }
public Result <ServiceResponse> ChangePassword(ChangePasswordRequest request, [FromServices] IUserPasswordValidator passwordValidator) { return(this.InTransaction("Default", uow => { if (request is null) { throw new ArgumentNullException(nameof(request)); } if (string.IsNullOrEmpty(request.OldPassword)) { throw new ArgumentNullException("oldPassword"); } if (passwordValidator is null) { throw new ArgumentNullException(nameof(passwordValidator)); } var username = User.Identity?.Name; if (passwordValidator.Validate(ref username, request.OldPassword) != PasswordValidationResult.Valid) { throw new ValidationError("CurrentPasswordMismatch", Texts.Validation.CurrentPasswordMismatch.ToString(Localizer)); } if (request.ConfirmPassword != request.NewPassword) { throw new ValidationError("PasswordConfirmMismatch", Localizer.Get("Validation.PasswordConfirm")); } request.NewPassword = UserRepository.ValidatePassword(request.NewPassword, Localizer); string salt = null; var hash = UserRepository.GenerateHash(request.NewPassword, ref salt); var userId = int.Parse(User.GetIdentifier()); UserRepository.CheckPublicDemo(userId); uow.Connection.UpdateById(new UserRow { UserId = userId, PasswordSalt = salt, PasswordHash = hash }); Cache.InvalidateOnCommit(uow, UserRow.Fields); return new ServiceResponse(); })); }
public CreateUserController( IUserStore userStore = null, IUserSessionStore userSessionStore = null, IUserPasswordValidator userPasswordValidator = null, ICreateUserRequestValidator createUserRequestValidator = null, ISendEmailConfirmation sendEmailConfirmation = null) { _userStore = userStore ?? new UserStore(); _userSessionStore = userSessionStore ?? new UserSessionStore(); _userPasswordValidator = userPasswordValidator ?? new UserPasswordValidator(); _createUserRequestValidator = createUserRequestValidator ?? new CreateUserRequestValidator(); _sendEmailConfirmation = sendEmailConfirmation ?? new SendEmailConfirmationController(); }
public Result <ServiceResponse> Login(LoginRequest request, [FromServices] IUserPasswordValidator passwordValidator, [FromServices] IUserRetrieveService userRetriever, [FromServices] IEmailSender emailSender = null) { return(this.ExecuteMethod(() => { if (request is null) { throw new ArgumentNullException(nameof(request)); } if (string.IsNullOrEmpty(request.Username)) { throw new ArgumentNullException("username"); } if (passwordValidator is null) { throw new ArgumentNullException(nameof(passwordValidator)); } if (userRetriever is null) { throw new ArgumentNullException(nameof(userRetriever)); } var username = request.Username; var result = passwordValidator.Validate(ref username, request.Password); if (result == PasswordValidationResult.Valid) { var principal = UserRetrieveService.CreatePrincipal(userRetriever, username, authType: "Password"); HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal) .GetAwaiter().GetResult(); return new ServiceResponse(); } throw new ValidationError("AuthenticationError", Texts.Validation.AuthenticationError.ToString(Localizer)); })); }
public ChangePasswordRequestValidator(IUserPasswordValidator userPasswordValidator = null) { _userPasswordValidator = userPasswordValidator ?? new UserPasswordValidator(); }