var _user = _userService.Find(x => x.Email == user.Email && x.Password == Crypto.Hash(_pass, "MD5")
&& x.ConfirmPassword == Crypto.Hash(_pass, "MD5"));

burda zaten password kontrolü ettiriyorsun. password nasıl boş geliyor ? demekki listede o kullanıcının şifresi boş ?
ayrıca eğer kullanıcı şifresini update etmeye çalışırsa bu kod çalışmayacak (veya epostasını)



bir not daha ekleme

var _user = _userService.Find(x => x.Email == user.Email && x.Password == Crypto.Hash(_pass, "MD5")
&& x.ConfirmPassword == Crypto.Hash(_pass, "MD5"));


find yerine Any yazarsan (bool döndürür) listede hiç olup olmadığını kontrol edersin (_user != null'dan daha iyi olabilir senin için)