Esempio n. 1
0
        public TokenDTO Authenticate(string pseudo, string password, string ipAddress)
        {
            var user = Context.Users
                       .Include(u => u.Person.PersonRoles)
                       .ThenInclude(pr => pr.Role)
                       .ThenInclude(r => r.ClaimRoles)
                       .ThenInclude(c => c.Claim)
                       .FirstOrDefault(u => u.Pseudo == pseudo);

            if (user == null)
            {
                throw new UnauthorizedAccessException();
            }
            if (!Password.Compare(user.Password, password, PasswordsPepper))
            {
                throw new UnauthorizedAccessException();
            }

            var tokenDto     = generateToken(user);
            var refreshToken = generateRefreshToken(ipAddress);

            refreshToken.User = user;
            Context.RefreshTokens.Add(refreshToken);
            Context.SaveChanges();
            tokenDto.refresh_token = refreshToken.Token;
            return(tokenDto);
        }
Esempio n. 2
0
        public int ChangePassword(ChangePasswordDTO dto, int?userId)
        {
            var user = Context.Users
                       .Include(u => u.Person.PersonRoles)
                       .ThenInclude(pr => pr.Role)
                       .ThenInclude(r => r.ClaimRoles)
                       .ThenInclude(c => c.Claim)
                       .FirstOrDefault(u => u.Id == userId);

            if (user == null)
            {
                throw new UnauthorizedAccessException();
            }
            if (!Password.Compare(user.Password, dto.Password, PasswordsPepper))
            {
                throw new UnauthorizedAccessException();
            }

            user.Password = Password.Encode(dto.NewPassword, PasswordsPepper);
            return(Context.SaveChanges());
        }