Одним из вариантов будет использование ограничения маршрута.
public class AuthenticatedConstraint : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
return httpContext.Request.IsAuthenticated;
}
}
Тогда вы можете определить маршрут "LoggedInDefault" до обычного значения по умолчанию:
routes.MapRoute(
"LoggedInDefault",
"{controller}/{action}/{id}",
new { controller = "LoggedIn", action = "Index", id = "" },
new { loggedIn= new AuthenticatedConstraint()}
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);