2016-06-21 5 views
1

私はAsp.Net Core(とasp.netの一般的なもの)を使い始めています。残りのAPI用の素晴らしいコントローラクラスを構築しようとしています。私は単一のクラスにこれを置くことができます実現Asp.Netコアコントローラのルートとロジックの再利用

[Route("/api/v1/users/{id}")] 
public class UserController: Controller 
{ 
    protected int userId; 
    public override void OnActionExecuting(ActionExecutingContext context) 
    { 
     base.OnActionExecuting(context); 
     // Validate userId.. 
     userId = (int) RouteData.Values["id"]; 
    } 

    [HttpGet] 
    public IActionResult Info() 
    { 
     // Use this.userId here 
     return this.Json("User info.."); 
    } 
} 

[Route("/friends")] 
public class UserFriendsController: UserController 
{ 
    [HttpGet] 
    public IActionResult Info() 
    { 
     // Use this.userId here 
     return this.Json("List of user's friends.."); 
    } 
} 

:私は(非作業例)そうのようなリソースのためにこのような検証などのルートとロジックを再定義を避けるためにベースコントローラを継承しようとしている

実際のシナリオでは、すべてがUserControllerから継承したいコントローラが増えています。

答えて

1

私は ルートとを再定義を避けるためにベースコントローラを継承しようとしている:それはどのようにルーティング作品についての良い説明を持つよう

はまた、私は、このASP.NET Core 1.0 - Routing - Under the hood記事をお勧めすることができますリソースの検証などのロジック

現在のユーザーがacceを持っているかどうかを確認したい場合はリソース上で正しく動作するかどうかは、Resource Based Authorizationです。クロスカットに関するその他の問題については、FiltersまたはMiddlewaresを使用できます。

関連する問題