コード例 #1
0
        public async Task <IActionResult> Loguearse(LoginVm login)
        {
            bool loginValido = _seguridadService.LoginValido(login.NombreUsuario, login.Password);

            if (loginValido)
            {
                Usuario user = _usuarioService.GetUsuario(login.NombreUsuario);
                //Lo logueamos
                List <Claim> claims = new List <Claim>
                {
                    new Claim(ClaimTypes.Name, user.NombreUsuario),
                    new Claim("FullName", user.NombreCompleto()),
                    new Claim(ClaimTypes.Role, user.IdRol.ToString())
                };

                ClaimsIdentity claimsIdentity =
                    new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

                AuthenticationProperties authenticationProperties = new AuthenticationProperties
                {
                    IsPersistent = true
                };

                await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,
                                              new ClaimsPrincipal(claimsIdentity), authenticationProperties);


                //Lo mandamos a la lista de sus contactos
                return(RedirectToAction("Index", "Contactos"));
            }

            //Si el login no es valido, lo mando a la pagina del login nuevamente

            TempData["mensaje"] = "Las credenciales ingresadas no son correctas";

            return(RedirectToAction("Login"));
        }