public async Task <ActionResult> Autenticar(LoginViewModel model) { if (ModelState.IsValid) { var user = _gerenciadoraUsuario.ObterPorLoginSenha(MethodsUtils.RemoverCaracteresEspeciais(model.Cpf), Criptografia.GerarHashSenha(model.Senha)); if (user != null) { var claims = new List <Claim> { new Claim(ClaimTypes.SerialNumber, user.Id.ToString()), new Claim(ClaimTypes.NameIdentifier, user.Nome), new Claim(ClaimTypes.UserData, user.Cpf), new Claim(ClaimTypes.Email, user.Email), new Claim(ClaimTypes.OtherPhone, user.Telefone), new Claim(ClaimTypes.Role, user.Tipo) }; // Adicionando uma identidade as claims. var identidade = new ClaimsIdentity(claims, "login"); // Propriedades da autenticação. var propriedadesClaim = new AuthenticationProperties { ExpiresUtc = DateTimeOffset.UtcNow.AddDays(1) // Expira em 1 dia }; // Logando efetivamente. await HttpContext.SignInAsync(new ClaimsPrincipal(identidade), propriedadesClaim); return(RedirectToAction("Index", "Home")); } } return(RedirectToAction("Index", "Login", new { msg = "error" })); }