示例#1
0
        public IActionResult LogIn([FromBody] LogInModel logInModel)
        {
            var account = accountsRepository.GetAccountByUsername(logInModel.Username);

            if (account == null)
            {
                return(BadRequest(invalidAccountOrUserError));
            }
            var accountsPassword = accountsRepository.GetAccountHashedPassword(account.UserName);
            var isPasswordValid  = authenticationService.ComparePasswords(logInModel.Password, accountsPassword);

            if (!isPasswordValid)
            {
                return(BadRequest(invalidAccountOrUserError));
            }

            var returnAccount = new
            {
                account.EntityId,
                account.Name,
                account.Surname,
                account.Address,
                account.UserName,
                account.Role
            };

            return(Ok(returnAccount));
        }
        public void AuthenticateUser(MemberLoginDetails details)
        {
            Account account = _accounts.GetAccountByUsername(details.UserName);

            if (account == null)
            {
                throw new Exception("Invalid username or password");
            }

            if (_hasher.SaltedPassword(details.Password, account.Salt) != account.Password)
            {
                throw new Exception("Invalid username or password");
            }
        }
        public async Task BanUser(int ownerId, string userName)
        {
            var user = accountsRepository.GetAccountByUsername(userName);

            if (user == null)
            {
                throw new Exception();
            }

            var blockedUser = new BlockedUsers()
            {
                AccountId = user.AccountId,
                OwnerId   = ownerId
            };

            await blockedUsersRepository.AddAsync(blockedUser);
        }