2012-03-16 6 views

Respuesta

5

Dos maneras "de la parte superior de mi cabeza":

1 - personalizados Action Filter que redirige al usuario a la página si se registran en

public class RedirectAuthenticatedRequests : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     if(filterContext.HttpContext.Request.IsAuthenticated) { 
      filterContext.Result = new RedirectToRouteResult(
       new RouteValueDictionary(new { 
         controller = "SomeController", 
         action = "SomeAction" 
       } 
      )); 
     } 

     base.OnActionExecuting(filterContext); 
    } 
} 

2 - simple. verifique en el método de acción login si el usuario está conectado.

if(Request.IsAuthenticated) return RedirectToAction("SomeOtherView"); 
+0

I'd crear un Atributo derivado [AuthorizeAttribute] de hecho. – Rhapsody

+0

@Rhapsody ¿Puedes explicarnos cuáles son los pasos para tener ese Atributo? – updev

+0

@Xander te refieres a ActionFilter en Global.aspx? – updev

5

El camino más fácil es comprobar en el método controlador (login/registro) si el usuario es autenticado, y si es redirigir al usuario a la página que desea:

Algo como esto para la página de inicio de sesión (mismo con Registro):

// 
// GET: /Login/Index 
public ActionResult Index() 
{ 
    if(User.Identity.IsAuthenticated){ 
      //redirect to some other page 
      return RedirectToRoute("Home", "Index"); 
    } 

    return View(); 
} 
0

puede comprobar la propiedad User.Identity.IsAuthenticated y reorientar de manera apropiada.

Cuestiones relacionadas