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()); }
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()); }