Exemplo n.º 1
0
        public void ForgottenPassword(ForgottenPasswordModel model)
        {
            // Validate supplied reset password info
            _authenticationValidator.ValidateForgottenPassword(model);

            // Get reset password token
            TimeSpan expiryTimeSpan     = _authenticationConfigurationService.GetForgottenPasswordExpiryTimeSpan(model.TenantId);
            Token    resetPasswordToken = _securityService.CreateToken(expiryTimeSpan);

            // Get user
            string modelEmail = model.Email.Trim().ToLower();
            User   user       = _userRepository.ReadUserByEmail(model.TenantId, modelEmail);

            // Sets a user's reset password token in preparation for a reset password action
            user.ResetPasswordTokenValue  = resetPasswordToken.Value.ToString();
            user.ResetPasswordTokenExpiry = resetPasswordToken.Expiry;

            // Update user
            _userRepository.UpdateUser(user);

            // Get details of email that will be sent to user requesting password reset
            Email email = _authenticationConfigurationService.GetForgottenPasswordEmail(Web, Domain, user.Email, user.Alias, resetPasswordToken);

            // Send forgotten password email to user
            _emailService.SendEmail(email);
        }