0

誰かがMVC 4 C#Visual Studioのフロントコントローラを教えてください。MVCのフロントコントローラc#

つまり、大きなアプリケーションを実行する必要があり、セキュリティを追加してコントローラとアクションへのアクセスを制限したいと考えています。私はCodeIgniterのFront ControllerのLogisticでこれを行い、セッションにトークンを追加していたので、誰かがブラウザに手動でルートを書きたいと思ってもアクセスできませんでした。

私は[Authorize(Roles = "Admin")]について読んできましたが、それは解決策であることを認めていますが、これはすべてのコントローラのすべてのメソッドに書き込む必要があることを意味し、 IF/ELSEを使用してフロントコントローラに集中管理されています。

PD:これを行う方法がわからない場合は、少なくとも、MVC C#visual studioのフロントコントローラをどこで見つけることができるか教えてください。

ありがとうございます。

答えて

0

ASP MVCにフロントコントローラーはありません。あなたが探しているものは、他のすべてのコントローラが継承している何らかのベースコントローラだと思います。

このAuthorize属性は、メソッドまたはクラス(コントローラ全体)に追加できます。すべてのアクションにこの属性が必要な場合は、マスターコントローラーを作成し、すべてのコントローラーにこのコントローラーを継承させることをお勧めします。

0

MVCにフロントコントローラがありません。ベースコントローラーを作成する必要があり、すべてのコントローラーがベースコントローラーを継承します。

public class BaseController : Controller 
    { 

     protected override void OnActionExecuting(ActionExecutingContext filterContext) 
     { 
      var getControllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; 
      var getActionName = filterContext.ActionDescriptor.ActionName; 
      //Write your code here 
     } 
    } 

ここで、コントローラをベースコントローラで継承します。

public class AccountController : BaseController 
    { 

     //Your action goes here. 
    } 
+0

私はこれを試しましたが、私が欲しかったように機能しませんでした。つまり、すべてのアクションがFRONTコントローラを通過するコントローラが必要です。 例:localhost/controller/method/parametersの代わりにURL-> localhost/FRONTCONTROLLER/controller/method/parameters –