Неверная попытка входа - PullRequest
       7

Неверная попытка входа

0 голосов
/ 29 августа 2018

Я использую следующий код для процедуры входа в систему. Я сохранил точку останова на контроллере входа и функцию validateUser сервисного уровня, чтобы проверить, где я ошибся, и обнаружил, что получаю нулевое значение в объекте dbUser в функции ValidateUser уровня обслуживания, и он показывает неверную попытку входа в систему. Где я неправ? Я что-то упустил?

Вид контроллера

 public ActionResult Login(UserLoginDTO userLoginDTO)
    {
        try
        {
            if (ModelState.IsValid)
            {
                userLoginDTO.Password = Helper.EncodePasswordToBase64(userLoginDTO.Password);
                UserLoginDTO user = userLoginService.ValidateUser(userLoginDTO);
                if (user != null)
                {
                    this.SignInUser(user, false);
                    return RedirectToAction("Index", "Home");
                }
                ModelState.AddModelError("", "Invalid login attempt.");
            }
        }
        catch (Exception ex)
        {
            Log.Error(ex);
            //throw;
        }
        return View(userLoginDTO);
    }

Модель просмотра

 public class UserLoginDTO
{
    public int Id { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }
}

Сервисный уровень

public interface IUserLoginService
{
    UserLoginDTO ValidateUser(UserLoginDTO userLoginModel);
}

public class UserLoginService : IUserLoginService
{
    private IUnitOfWork unitOfWork;
    public UserLoginService(IUnitOfWork _unitOfWork)
    {
        unitOfWork = _unitOfWork ?? new UnitOfWork();
    }

    public UserLoginDTO ValidateUser(UserLoginDTO userLoginModel)
    {

        UserLogin dbUser = unitOfWork.UserLoginRepository.All()
              .Where(x => x.UserName == userLoginModel.UserName 
                      && x.Password == userLoginModel.Password)
              .FirstOrDefault();
        if (dbUser != null)
        {
            UserLoginDTO userDTO = dbUser.Convert();
            return userDTO;
        }
        return null;
    }

}

Слой репозитория

public interface IUnitOfWork
{
    int Save();
    Task<int> SaveAsync();
    IRepository<UserLogin> UserLoginRepository { get; }
}

    private IRepository<UserLogin> _userLoginRepository;
    public IRepository<UserLogin> UserLoginRepository
    {
        get
        {
            return _userLoginRepository ?? 
                    (_userLoginRepository = new RepositoryBase<UserLogin>(_context));
        }
    }
...