2016-09-23 15 views
1

OnactionExecuting()で認証されていない訪問者をリダイレクトしようとしているため、コントローラ全体をカバーしていますが、ほぼ完全にスキップされているようです。 OnActionExecuting()内からリダイレクトすることは可能ですか?OnActionExecutingのリダイレクトが機能しない

protected override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 

    base.OnActionExecuting(filterContext); 
    if (SimpleAuth.isAuth()) 
    { 
     RedirectToAction("Login", "Users"); 
    } 
} 

答えて

3

フィルタ内にRedirectToActionは使用できません。 RedirectToActionは、Controllerクラスのメンバーです。そのため、Controllerクラスから継承したクラスのメンバであるアクションメソッド内でこのメソッドを呼び出すことができます。

しかし、我々はフィルタについて話している場合、あなたは新しいRedirectToRouteResultfilterContext.Resultを設定する必要があります。

filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(
           new 
           { 
            controller = "Users", 
            action = "Login" 
           })); 
+0

それが今でリダイレクトされているが、それは私をチェック@mauzilla /ない/ユーザ/ログイン – mauzilla

+0

にリダイレクト更新。 –

関連する問題