Beispiel #1
0
        public AuthToken GetAuthToken(
            string password,
            IPasswordHashingService passwordHasher,
            IAlphanumericTokenGenerator alphanumericTokenGenerator,
            IDateTimeService dateTimeService)
        {
            var accountSalt = PasswordCredential.PasswordSalt;

            if (PasswordCredential.HashedPassword == passwordHasher.HashPassword(password, accountSalt))
            {
                var newAuthToken =
                    new AuthToken()
                {
                    TokenString = alphanumericTokenGenerator.GenerateAlphanumericToken(64),
                    LastUsed    = dateTimeService.GetCurrentDateTime(),
                    Account     = this
                };

                AuthTokens.Add(newAuthToken);

                return(newAuthToken);
            }
            else
            {
                throw new Exception("Incorrect Username or Password.");
            }
        }
Beispiel #2
0
 public RequestPasswordResetHandler(
     IUnitOfWork unitOfWork,
     IPasswordResetTokenSenderService passwordResetTokenSenderService,
     IAlphanumericTokenGenerator alphanumericTokenGenerator)
 {
     _unitOfWork = unitOfWork;
     _passwordResetTokenSenderService = passwordResetTokenSenderService;
     _alphanumericTokenGenerator      = alphanumericTokenGenerator;
 }
 public SendEmailVerificationMessageHandler(
     IUnitOfWork unitOfWork,
     IEmailVerifierService emailVerifierService,
     IAlphanumericTokenGenerator alphanumericTokenGenerator)
 {
     _unitOfWork                 = unitOfWork;
     _emailVerifierService       = emailVerifierService;
     _alphanumericTokenGenerator = alphanumericTokenGenerator;
 }
 public AddEmailAddressHandler(
     IUnitOfWork unitOfWork,
     IEmailVerifierService emailVerifierService,
     IAlphanumericTokenGenerator alphanumericTokenGenerator)
 {
     _unitOfWork                 = unitOfWork;
     _emailVerifierService       = emailVerifierService;
     _alphanumericTokenGenerator = alphanumericTokenGenerator;
 }
 public PasswordLoginHandler(
     IUnitOfWork unitOfWork,
     IPasswordHashingService passwordHashingService,
     IAlphanumericTokenGenerator alphanumericTokenGenerator,
     IDateTimeService dateTimeService,
     IMapper mapper)
 {
     _unitOfWork                 = unitOfWork;
     _passwordHashingService     = passwordHashingService;
     _alphanumericTokenGenerator = alphanumericTokenGenerator;
     _dateTimeService            = dateTimeService;
     _mapper = mapper;
 }
Beispiel #6
0
 public CreateAccountHandler(
     IUnitOfWork unitOfWork,
     IPasswordHashingService passwordHashingService,
     IEmailVerifierService emailVerifierService,
     IAlphanumericTokenGenerator alphanumericTokenGenerator,
     ISecureRandomStringGeneratorService securePasswordSaltGenerator)
 {
     _unitOfWork                  = unitOfWork;
     _passwordHashingService      = passwordHashingService;
     _emailVerifierService        = emailVerifierService;
     _alphanumericTokenGenerator  = alphanumericTokenGenerator;
     _securePasswordSaltGenerator = securePasswordSaltGenerator;
 }
Beispiel #7
0
 public UsersController(
     AppDbContext appDbContext,
     IMapper mapper,
     IEmailSender emailSender,
     ISecurePasswordSaltGenerator securePasswordSaltGenerator,
     IPasswordHasher passwordHasher,
     IAlphanumericTokenGenerator alphanumericTokenGenerator,
     ApiConfig config)
 {
     _appDbContext = appDbContext;
     _mapper       = mapper;
     _emailSender  = emailSender;
     _securePasswordSaltGenerator = securePasswordSaltGenerator;
     _passwordHasher             = passwordHasher;
     _alphanumericTokenGenerator = alphanumericTokenGenerator;
     _config = config;
 }
        public void SendVerificationRequest(IEmailVerifierService emailVerifier, IAlphanumericTokenGenerator tokenGenerator)
        {
            if (!IsVerified)
            {
                //disable all previous verification tokens
                VerificationTokens.ToList().ForEach(i => i.IsActive = false);

                var newToken = new EmailVerificationToken()
                {
                    VerificationToken = tokenGenerator.GenerateAlphanumericToken(64),
                    IsActive          = true,
                    EmailAddress      = this
                };

                VerificationTokens.Add(newToken);

                emailVerifier.AttemptToVerify(this, newToken);
            }
        }
Beispiel #9
0
        public void SendPasswordResetMessage(
            IPasswordResetMessageSender passwordResetMessageSender,
            IAlphanumericTokenGenerator tokenGenerator,
            IDateTimeService dateTimeService)
        {
            var resetToken =
                new PasswordResetToken()
            {
                Token     = tokenGenerator.GenerateAlphanumericToken(16),
                CreatedAt = dateTimeService.GetCurrentDateTime()
            };

            PasswordResetTokens.Add(resetToken);

            var addresses = new Dictionary <TypesOfAdress, string>();

            addresses.Add(TypesOfAdress.Email, EmailAddress);

            passwordResetMessageSender.SendPasswordResetMessage(addresses, resetToken);
        }
        public void SendResetRequest(
            IPasswordResetTokenSenderService passwordResetTokenSender,
            IAlphanumericTokenGenerator tokenGenerator)
        {
            //disable previous reset tokens
            PasswordResetTokens?.ToList().ForEach(i => i.IsActive = false);

            var newResetToken =
                new PasswordResetToken()
            {
                ResetToken = tokenGenerator.GenerateAlphanumericToken(64),
                IsActive   = true
            };

            PasswordResetTokens.Add(newResetToken);

            passwordResetTokenSender.SendResetToken(
                Account.PrimaryEmail,
                newResetToken
                );
        }
Beispiel #11
0
        public AuthToken Login(
            string password,
            IAlphanumericTokenGenerator tokenGenerator,
            IDateTimeService dateTimeService,
            IPasswordHashingService passwordHashingService)
        {
            var hashedPassword = passwordHashingService.HashPassword(password, PasswordCredential.Salt);

            if (hashedPassword != PasswordCredential.HashedPassword)
            {
                throw new DomainModelException("Incorrect username or password");
            }

            var authToken =
                new AuthToken()
            {
                Token     = tokenGenerator.GenerateAlphanumericToken(16),
                CreatedAt = dateTimeService.GetCurrentDateTime()
            };

            AuthTokens.Add(authToken);

            return(authToken);
        }