Exemplo n.º 1
0
        public void Logon(LogonModel model)
        {
            try
            {
                // Validate supplied logon credentials
                _authenticationValidator.ValidateLogon(model);

                // Username and password valid, user not locked out. We can continue and log user on.
                User user = _userRepository.ReadUserByEmail(model.TenantId, model.Email.Trim().ToLower());

                // Get user details that we will persist during authenticated session
                AuthenticatedUser authenticatedUser = new AuthenticatedUser
                {
                    Alias    = user.Alias,
                    Email    = user.Email,
                    UserId   = user.UserId,
                    TenantId = model.TenantId,
                    Roles    = user.Roles.Select(r => r.Name).ToList()
                };
                AuthenticatedUserInfo authenticatedUserInfo = new AuthenticatedUserInfo
                {
                    User       = authenticatedUser,
                    RememberMe = model.RememberMe
                };

                // Logon user using authentication provider
                _authenticationProviderService.LogonAuthenticatedUser(authenticatedUserInfo);
            }
            catch (UserLockedOutException)
            {
                Logoff();
                throw;
            }
        }