public void ExecutarLogin(object obj) { var login = (string)((object[])obj)[0]; if (string.IsNullOrEmpty(login)) { MessageBox.Show("Insira um nome de login."); return; } var pass = ((object[])obj)[1] as PasswordBox; if (string.IsNullOrEmpty(pass.Password)) { MessageBox.Show("Insira uma senha."); return; } new Task(() => { LoginEnabled = false; Status = "Autenticando..."; var model = new AutenticarUsuarioModel(); model.Execute(new AutenticarUsuarioRequest() { Login = login, Senha = pass.Password }); if (model.Response.Status != Base.ExecutionStatus.Success) MessageBox.Show(string.Concat("Erro ao autenticar:\n", model.Response.ErrorMessage)); else if (!model.Response.Existe) MessageBox.Show(string.Concat("Usuário não existe.")); else if (!model.Response.Autenticado) MessageBox.Show(string.Concat("Usuário e/ou senha inválidos.")); else { Flag = string.Concat(Flag,"x"); Context.NivelAcessoLogado = new Context.NivelAcesso() { Administrador = model.Response.NivelAcesso.Administrador, Cadastro = model.Response.NivelAcesso.Cadastro, Consulta = model.Response.NivelAcesso.Consulta, Nome = model.Response.NivelAcesso.Nome }; } Status = string.Empty; LoginEnabled = true; }).Start(); }
[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()); }