2010-01-21 79 views
0

我有這樣一段代碼:未經身份驗證/使用mvc註銷時獲取路由?

public class Authenticate : ActionFilterAttribute 
{ 

    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     if (!filterContext.HttpContext.User.Identity.IsAuthenticated) 
     { 
      filterContext.HttpContext.Response.Redirect("/"); 
     } 
    } 
} 

我想知道是否有可能使它重定向到行動=「登錄」控制器=「後臺管理」的觀點?我如何將一些消息傳遞給登錄視圖,告訴你「你需要登錄才能訪問」或類似的?

/M

回答

0

這是我如何解決重定向部分:

public class Authenticate : ActionFilterAttribute 
{ 

    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     if (!filterContext.HttpContext.User.Identity.IsAuthenticated) 
     { 
      RedirectToRoute(filterContext, 
       new 
       { 
        controller = "AdminLogin", 
        action = "AdminLogin" 
       }); 
     } 
    } 



    private void RedirectToRoute(ActionExecutingContext context, object routeValues) 
    { 
     var rc = new RequestContext(context.HttpContext, context.RouteData); 

     string url = RouteTable.Routes.GetVirtualPath(rc, 
      new RouteValueDictionary(routeValues)).VirtualPath; 

     context.HttpContext.Response.Redirect(url, true); 
    } 

} 

不知道這是否是最佳的,但似乎正確地做這個工作

相關問題