×
Ir ao conteúdo
  • Cadastre-se

Mensagem de erro nao aparece na view


_rsd_17

Posts recomendados

Ola,

estou a ter um problema no codigo ele nao apresenta erros mas quando preencho o formulario de login mal ele devia apresentar-me uma mensagem a dizer Utilizador inexistente na base de dados! mas nao acontece ele simplesmente elimina esta linha de codigo e corre normalmente. 

ModelState.AddModelError("", "Utilizador inexistente na base de dados!");

Ele nao entra porque o utilizador nao se encontra na base de dados, ele retorna me a view index.

Tenho o codigo do formulario de login assim:

public IActionResult Login(string user, string password, string? ReturnUrl)
        {
            SHA512 sha512 = SHA512Managed.Create();
            byte[] bytes = sha512.ComputeHash(Encoding.UTF8.GetBytes(password), 0, Encoding.UTF8.GetByteCount(password));


            string passHash = Convert.ToBase64String(bytes);

            Socios socio = _context.Socios.Include(s => s.Gerir).Include(s => s.Mensagem).Include(s => s.Participa).Include(s => s.PersonalTrainer).Include(s => s.Peso).Include(s => s.PlanosExercicios).FirstOrDefault(s => s.NomeUtilizador == user && s.Password == password);
            if (socio != null)
            {
                HttpContext.Session.SetString("Nome", socio.NomeUtilizador);
                HttpContext.Session.SetInt32("UserId", socio.Idsocio);

                HttpContext.Session.SetString("Perfil", "Socio");

            }
            Professores prof = _context.Professores.Include(p => p.MapaAulasGrupo).Include(p => p.Mensagem).Include(p => p.Peso).Include(s => s.PersonalTrainer).Include(p => p.PlanosExercicios).FirstOrDefault(p => p.Nome == user && p.Password == password);
            if (prof != null)
            {
                HttpContext.Session.SetString("Nome", prof.Nome);
                HttpContext.Session.SetInt32("UserId", prof.Idprofessor);


                HttpContext.Session.SetString("Perfil", "Professor");

            }
            Administrador admin = _context.Administrador.Include(a => a.Gerir).SingleOrDefault(a => a.Nome == user && a.Password == password);
            if (admin != null)
            {
                HttpContext.Session.SetString("Nome", admin.Nome);
                HttpContext.Session.SetInt32("UserId", admin.Idadministrador);


                HttpContext.Session.SetString("Perfil", "Administrador");

            }

            if (String.IsNullOrEmpty(ReturnUrl))
            {
                ModelState.AddModelError("", "Utilizador inexistente na base de dados!");
                return LocalRedirect("/");
            }
            else
            {
                return LocalRedirect(ReturnUrl);
            }
        }

Alguem me pode ajudar a resolver isso ?

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Olá @_rsd_17! No escopo da função, tente declarar o parâmetro ReturnUrl apenas como string, e não como uma nullable  string (string?). Talvez isto esteja impedindo de que o valor de ReturnUrl seja nulo.

public IActionResult Login(string user, string password, string ReturnUrl)

 

Espero ter ajudado!

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!