2017-07-20 8 views
1

サービスはASP.NETコアを使用し、アプリケーションパイプラインではStartUp.cs Configure(IApplicationBuilder app)メソッドで構成されたいくつかのミドルウェアがあります。要求がコントローラに到達する前にURLを検証する方法

ミドルウェアは、この方法で追加されます。 app.UseMiddleware<Type>();

私はHttpContext.Request.Pathを検証し、それがコントローラーの1を打つことができることを確認したいと思います。ミドルウェアコードで利用可能なルート(コントローラパス)のリストを取得するにはどうすればよいですか、またはこの特定のリクエストパスが登録されたコントローラの1つに当たったかどうかを確認する簡単な方法はありますか?コントローラを登録するには、xxxxcontroller : ControllerBase[Route("controller/{version}/{id}]という属性を使用しました。

ありがとうございます。

+0

「ミドルウェア」のモジュールに相当するモジュールが必要になると思います。https://docs.microsoft.com/en-us/aspnet/core/migration/http-modules –

答えて

0

私はあなたが探しているものを理解していれば、特定のルートへのアクセスを保証するために役割を使用する必要があります。

+1

アイデンティティは、ユーザーの主張のもの、私は実際にアイデンティティについてだとは思わない。 – user1722361

0

すべてのルートのリストを取得し、そのパスが有効なルートのパスであることを確認する方法はわかりませんが、MVCが実行された後でステータスコードが404の場合はミドルウェアを使用して応答ステータスコードを確認できますあなたはそれが有効なルートではなかったことを知っており、それに応じてそれを処理することができます。

UseStatusCodePagesWithReExecute拡張メソッドは基本的にこのアプローチを使用して404エラーだけでなくすべてのエラーステータスコードを処理します。

関連する問題