0

Desarrolle un sistema con login con EntityFramework, pero ahora que cambie a .Net Core en la parte de crear mi sesión cuando no funciona con Session["usuario"] = usuario;

        if (usuario.UsuarioN != "")
        {
            Session["usuario"] = usuario;
            return RedirectToAction("Index", "Home");
        }

Pero me dice que no existe en el contexto actual. También leí que se podía crear con HttpContext.Current.Session["usuario"] = usuario; pero me sigue sin funcionar, alguien sabe o me podría decir como puedo crear sesiones en .net core.

1

1 respuesta 1

0

Añado la forma en como lo resolví y espero le pueda ayudar alguien.

-Lo que yo hice fue agregar HttpContext.Session.SetString("Usuario", usuarioLog.Usuario1); después de que el usuario se haya logueado de manera correcta.

    [HttpPost]
    public IActionResult Login(Usuario usuario)
    {
        string contraMayus = usuario.Contrasena.ToUpper();
        contraMayus = ConvertirContra(contraMayus);

        Usuario usuarioLog = usuarioORM.Usuarios.Where(x => 
            x.Usuario1 == usuario.Usuario1 && x.Contrasena == contraMayus).FirstOrDefault();
        
        if(usuarioLog == null)
        {
            ViewBag.Message = "Hubó algun error, revisa tus accesos!";
            return View();
        }

        //Guardar información en una sesión
        HttpContext.Session.SetString("Usuario", usuarioLog.Usuario1);
        HttpContext.Session.SetString("Inforperfil", usuarioLog.Inforperfil);

        Response.Cookies.Append("UltimaConexion", DateTime.Now.ToString());

        return RedirectToAction("Dashboard");
    }

Y ya solo en mi vista coloco lo siguiente:

@if (Context.Session.GetString("Usuario") != null)
{
   .....HTML text
}
else
{
  <h1 class="display-1 text-center">Tienes que iniciar sesión para poder 
  ver el contenido</h1>
}

Nota: recuerden que el nombre que esta entre comillas en Context.Session.GetString("Usuario") tiene que ser el mismo nombre que se le dio en HttpContext.Session.SetString("Usuario", objUsuario);

¿No es la respuesta que buscas? Examina otras preguntas con la etiqueta o formula tu propia pregunta.