public IActionResult Register(AccountRegisterModel model,                         //campos do formulário
                                      [FromServices] UsuarioRepository usuarioRepository) //injeção de dependência
        {
            if (ModelState.IsValid)
            {
                try
                {
                    //verificar se o email informado já encontra-se cadastrado.
                    if (usuarioRepository.Consultar(model.Email) != null)
                    {
                        TempData["MensagemErro"] = "O email informado já encontra-se cadastrado. Tente outro.";
                    }
                    else
                    {
                        var usuario = new Usuario(); //criando um usuário

                        usuario.Nome        = model.Nome;
                        usuario.Email       = model.Email;
                        usuario.Senha       = MD5Encrypt.GenerateHash(model.Senha);
                        usuario.DataCriacao = DateTime.Now;

                        usuarioRepository.Inserir(usuario); //gravando no banco..

                        TempData["MensagemSucesso"] = "Conta de usuário cadastrada com sucesso!";
                        ModelState.Clear(); //limpar o conteudo do formulário
                    }
                }
                catch (Exception e)
                {
                    TempData["MensagemErro"] = e.Message;
                }
            }

            return(View());
        }
        [HttpPost] //recebe o SUBMIT do formulário
        public IActionResult Login(AutenticarUsuarioModel model)
        {
            //verificar se todos os campos do forumlario passaram nas validações
            if (ModelState.IsValid)
            {
                try
                {
                    //buscar usuario no banco de dados atraves do email e senha
                    var usuario = usuarioRepository.Find(model.Email, mD5Encrypt.GenerateHash(model.Senha));

                    //verificar se o usuario foi encontrado
                    if (usuario != null)
                    {
                        //gerando credencial para o usuario logado
                        var identity = new ClaimsIdentity(new[]
                        {
                            new Claim(ClaimTypes.Name, usuario.Email),      //nome de usuário
                            new Claim(ClaimTypes.Role, usuario.Perfil.Nome) //perifl
                        },
                                                          CookieAuthenticationDefaults.AuthenticationScheme);

                        //realizar a autenticação
                        var autenticacao = new ClaimsPrincipal(identity);
                        HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, autenticacao);

                        return(RedirectToAction("Index", "AreaRestrita"));
                    }
                    else
                    {
                        TempData["Mensagem"] = "Acesso Negado. Usuário inválido.";
                    }
                }
                catch (Exception e)
                {
                    TempData["Mensagem"] = "Ocorreu um erro: " + e.Message;
                }
            }
            return(View());
        }
示例#3
0
        public IActionResult Login(AutenticarUsuarioModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var usuario = usuariorepository.Find
                                      (model.Email, mD5Encrypt.GenerateHash(model.Senha));

                    if (usuario != null)
                    {
                        var identity = new ClaimsIdentity(new[]
                        {
                            new Claim(ClaimTypes.Name, usuario.Email),

                            new Claim(ClaimTypes.Role, usuario.Perfil.Nome)
                        },
                                                          CookieAuthenticationDefaults.AuthenticationScheme);

                        var autenticacao = new ClaimsPrincipal(identity);
                        HttpContext.SignInAsync
                            (CookieAuthenticationDefaults
                            .AuthenticationScheme, autenticacao);

                        return(RedirectToAction("Index", "AreaRestrita"));
                    }
                    else
                    {
                        TempData["Mensagem"] = "Acesso negado. Usuário inválido.";
                    }
                }
                catch (Exception ex)
                {
                    TempData["Mensagem"] = "Ocorreu um erro: " + ex.Message;
                }
            }

            return(View());
        }
        [HttpPost]                                                                     //recebe o SUBMIT do formulário (envio dos dados)
        public IActionResult Login(AccountLoginModel model,                            //campos do formulário
                                   [FromServices] UsuarioRepository usuarioRepository) //injeção de dependência
        {
            //verificar se todos os campos passaram nas regras de validação
            if (ModelState.IsValid)
            {
                try
                {
                    //buscando o usuário no banco de dados pelo email e senha
                    var usuario = usuarioRepository.Consultar(model.Email, MD5Encrypt.GenerateHash(model.Senha));

                    //verificando se o usuário foi encontrado
                    if (usuario != null)
                    {
                        //criando a credencial (permissão) de acesso do usuário..
                        var identity = new ClaimsIdentity(new[]
                        {
                            new Claim(ClaimTypes.Name, usuario.Email)
                        }, CookieAuthenticationDefaults.AuthenticationScheme);

                        //gravar esta permissão em um arquivo de cookie
                        var principal = new ClaimsPrincipal(identity);
                        HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);

                        //redirecionando para a página /Home/Index
                        return(RedirectToAction("Index", "Home")); //Home/Index
                    }
                    else
                    {
                        TempData["MensagemErro"] = "Acesso Negado. Usuário não foi encontrado.";
                    }
                }
                catch (Exception e)
                {
                    TempData["MensagemErro"] = e.Message;
                }
            }

            return(View());
        }