ミドルウェアをC#ASP.NET Coreパイプラインに追加する際のMap拡張機能の使用は何ですか?
ミドルウェアは、要求と応答を処理するためにアプリケーションパイプラインに組み込まれるソフトウェアコンポーネントです。
各コンポーネントは、パイプライン内の次のコンポーネントにリクエストを渡すかどうかを選択し、次のコンポーネントがパイプラインで呼び出される前後に特定のアクションを実行できます。
マップ拡張機能は、パイプラインを分岐するための規則として使用されます。
Map拡張メソッドは、リクエストのパスに基づいてリクエストデリゲートを照合するために使用されます。 Mapは、個別のミドルウェアパイプラインを構成するパスと関数を受け入れるだけです。
次の例では、ベースパスが/ maptestのリクエストはすべて、HandleMapTestメソッドで構成されたパイプラインによって処理されます。
例
private static void HandleMapTest(IApplicationBuilder app){ app.Run(async context =>{ await context.Response.WriteAsync("Map Test Successful"); }); } public void ConfigureMapping(IApplicationBuilder app){ app.Map("/maptest", HandleMapTest); }
パスベースのマッピングに加えて、MapWhenメソッドは述語ベースのミドルウェア分岐をサポートし、非常に柔軟な方法で個別のパイプラインを構築できるようにします。
Func
private static void HandleBranch(IApplicationBuilder app){ app.Run(async context =>{ await context.Response.WriteAsync("Branch used."); }); } public void ConfigureMapWhen(IApplicationBuilder app){ app.MapWhen(context => { return context.Request.Query.ContainsKey("branch"); }, HandleBranch); app.Run(async context =>{ await context.Response.WriteAsync("Hello from " + _environment); }); }
マップはネストすることもできます
app.Map("/level1", level1App => { level1App.Map("/level2a", level2AApp => { // "/level1/level2a" //... }); level1App.Map("/level2b", level2BApp => { // "/level1/level2b" //... }); });
-
ASP .Net MVC C#でのNonActionAttributeの重要性は何ですか?
NonAction 属性は、コントローラーにパブリックメソッドが必要であるが、アクションメソッドとして扱いたくない場合に使用されます。アクションメソッドは、URLを使用して呼び出すことができるコントローラーのパブリックメソッドです。したがって、デフォルトでは、コントローラーにパブリックメソッドがある場合、URLリクエストを使用して呼び出すことができます。コントローラのパブリックメソッドへのアクセスを制限するには、NonAction属性を使用できます。 ここで、HomeControllerに2つのパブリックメソッドMyMethod1とMyMethod2があると考えてみましょう。 。 コントロ
-
C#ASP.NET WebAPIのさまざまな種類のフィルターは何ですか?
フィルタは、WebApiFrameworkリクエスト処理のさまざまなレベルで追加のロジックを挿入するために使用されます。フィルタは、横断的関心事(ロギング、承認、およびキャッシング)の方法を提供します。フィルタは、宣言的またはプログラム的な方法でアクションメソッドまたはコントローラに適用できます。以下は、Web API C#のフィルターの種類です。 認証フィルター − 認証フィルターは、ユーザーの詳細を認証するのに役立ちます。認証フィルターでは、ユーザーの信頼性をチェックするためのロジックを記述します。 認証フィルター − 承認フィルターは、ユーザーアクセスのチェックを担当しま