public async Task <IActionResult> Login(Cliente cliente) { if (ModelState.GetFieldValidationState("Email") == ModelValidationState.Valid && ModelState.GetFieldValidationState("Senha") == ModelValidationState.Valid) { try { await Token.CheckCookies(HttpContext); } catch (Exception) { } Cliente clienteLogado = new Cliente(); try { clienteLogado = await _cliente.SelectClienteByEmail(cliente, Token.GetToken(HttpContext)); } catch (Exception ex) { ViewBag.Erro = ex.Message; return(View()); } var claims = new List <Claim>() { new Claim(ClaimTypes.Name, clienteLogado.Nome), //0 new Claim("CPF", clienteLogado.Cpf), //1 new Claim(ClaimTypes.Email, clienteLogado.Email), //2 new Claim("Id", clienteLogado.IdCliente.ToString()), //3 new Claim("Senha", clienteLogado.Senha), //4 new Claim(ClaimTypes.Role, "Cliente") }; ClaimsIdentity usuarioIdentidade = new ClaimsIdentity(claims, "CookieAuthentication"); ClaimsPrincipal principal = new ClaimsPrincipal(usuarioIdentidade); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, new AuthenticationProperties { AllowRefresh = true, ExpiresUtc = DateTime.Now.ToLocalTime().AddHours(2), IsPersistent = true }); return(RedirectToAction("Browse")); } return(View()); }