Retornar vista de otro controlador en ASP.Net

geduino

Buenos días a todos.
Estoy haciendo una aplicación en asp.net, con usuarios.
Cuando un usuario se registra, creo una variable de sesión con sus datos.
Lo que quiero hacer es que si se intenta acceder a cualquier vista sin haber pasado por el login, te devuelva al login.
Por lo tanto, en el controlador, si la variable de sesión es nula, quiero retornar la vista del login.
¿Cómo puedo hacerlo?

// GET: User
        public ActionResult user()
        {
            ViewBag.user = Session["user"];
            if (Session["user"] == null)
            {
                //Aqui retornar la vista al login
            }
            else
            {
                return View();
            }
           
}

Muchas gracias de antemano!

edit: Tampoco se si esta es la mejor forma de controlar esto, es la que se me ha ocurrido a mí, pero seguramente exista otra mejor.
Estoy abierto a respuestas que indiquen una solución mejor.

Merkury

#1 Response.Redirect es tu amigo.

1 respuesta
PiPePiTo

#1 Esto te valdría.

public ActionResult user()
        {
            ViewBag.user = Session["user"];
            if (Session["user"] == null)
                return RedirectToAction("Login"); //Suponiendo que tengas definida esa acción en un controller.
            else
                return View();        
            
}

¿No tienes el security provider de asp metido?

Eso se debería de encargar de todo

#2 esto no es webforms x'D

2 2 respuestas
Merkury

#3 A fregar :3

geduino

#3 Justo lo que buscaba! muchas gracias!

1 respuesta
PiPePiTo

#5 Nada hombre, un besito y arreglado x'D

Usuarios habituales

  • PiPePiTo
  • geduino
  • Merkury