Динамические маршруты и членство провайдеров - PullRequest
2 голосов
/ 25 августа 2010

Используя поставщика членства и инфраструктуру MVC, возможно ли, что маршруты динамически изменяются, так что уже зарегистрированный пользователь переходит на свою собственную страницу, а не по умолчанию.по умолчанию.Если пользователь уже вошел в систему или нет, я делаю перенаправление на свою страницу.Это не может быть правильным способом!Может ли это?

В RegisterRoutes у меня есть это

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("Default",
                "{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = "" }
);

1 Ответ

1 голос
/ 25 августа 2010

Одним из вариантов будет использование ограничения маршрута.

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 = "" }
);
...