2016-07-05 22 views
0

属性ルーティングを使用する場合、特定の実行時条件(ライセンスなど)に基づいてルートを削除できますか?このような条件付き属性ルーティング

何か:アプリケーションがライセンスされている場合は、「/ API /何が」唯一のルートテーブルに追加され

[LicensedRoute("/api/whatever")] 

もちろん、私は明示的にアクションメソッドでチェックを行うか、要求を検証するためにアクションフィルタを使用しますが、最終的に私は、ソフトウェアがライセンスされていない場合は利用可能ではないルートを好むことができます。それはRESTfulなhttp://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2

です:

+1

この場合、おそらくカスタム認可属性が関連します。 – Albert

答えて

1

あなたはルーティング属性必要に思えますか?ライセンス情報を保存する方法:ユーザーログインですか?トークン?キー?

トークンベースの認証を使用して、クライアントがトークンを毎回渡すようにすることができます。たとえば、いくつかの「ライセンス」レベル/タイプを定義します(例:Free/Trial/Basic/Pro)。永続ストレージ(テーブル)マップトークン(guids)をライセンスタイプに変換します。次に、カスタム属性を使用して

、アクセス(例えば[MinimumLicence("Basic")])であることが最低限必要なライセンスの種類と各エンドポイント/コントローラ/アクションをマークします。次に、必要なライセンスに基づいて「ルーティングテーブル」を作成します。あなたがルートへのアクセスを拒否するのではなく、それらを「削除」でしょう。この場合

+0

したがって、短い答えはいいえです。 – Metro

関連する問題