この章では、ミドルウェアをセットアップする方法を学びます。 ASP.NET Core のミドルウェア テクノロジは、アプリケーションが HTTP 要求にどのように応答するかを制御します。また、アプリケーション例外エラーを制御することもできます。これは、ユーザーがどのように認証され、特定のアクションの実行を許可されるかにおいて重要です。
ミドルウェアは、リクエストと応答を処理するためにアプリケーションのパイプラインに組み込まれるソフトウェア コンポーネントです。
各コンポーネントは、パイプライン内の次のコンポーネントにリクエストを渡すかどうかを選択でき、パイプライン内のタスクの前後に特定のアクションを実行できます。
リクエストデリゲートは、リクエストパイプラインを構築するために使用されます。リクエスト デリゲートは、各 HTTP リクエストを処理するために使用されます。
ASP.NET Core のミドルウェアのすべての部分はオブジェクトであり、各部分には非常に具体的で焦点が絞られた限定された役割があります。
最終的には、アプリケーションに適切な動作を提供するために多くのミドルウェアが必要になります。
ここで、すべてのリクエストをアプリケーションに記録したいと仮定しましょう。
この場合、アプリケーションにインストールする最初のミドルウェアはログ コンポーネントです。
このロガーはすべての受信リクエストを確認でき、ミドルウェアは情報をログに記録し、このリクエストを次のブロックのミドルウェアに渡します。
ミドルウェアは、この処理パイプラインに一連のコンポーネントとして表示されます。
アプリケーションにインストールする次のミドルウェアは、認可コンポーネントです。
コンポーネントは、特定の Cookie を探しているか、HTTP ヘッダー内のトークンにアクセスしている可能性があります。
認可コンポーネントがトークンを見つけた場合、リクエストの続行が許可されます。
そうでない場合、認可コンポーネント自体が HTTP エラー コードでリクエストに応答するか、ユーザーをログイン ページにリダイレクトする可能性があります。
それ以外の場合、認可コンポーネントはリクエストを次のルーターのミドルウェアに渡します。
ルーターは URL を見て、次のアクションを決定します。
ルーターがいくつかの応答を行っているが、応答が見つからない場合、ルーター自体が 404 Not Found エラーを返す可能性があります。
それでは、簡単な例を通してミドルウェアについてさらに理解しましょう。スタートアップ クラスの Configure メソッドを使用して、ミドルウェア コンポーネントを構成します。
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Hosting; using Microsoft.AspNet.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration; namespace FirstAppDemo { public class Startup { public Startup() { var builder = new ConfigurationBuilder() .AddJsonFile("AppSettings.json"); Configuration = builder.Build(); } public IConfiguration Configuration { get; set; } // This method gets called by the runtime. // Use this method to add services to the container. // For more information on how to configure your application, // visit http://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { } // This method gets called by the runtime. // Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { app.UseIISPlatformHandler(); app.Run(async (context) => { var msg = Configuration["message"]; await context.Response.WriteAsync(msg); }); } // Entry point for the application. public static void Main(string[] args) => WebApplication.Run<Startup>(args); } } Configure()方法内,我们将调用IApplicationBuilder接口的扩展方法来添加中间件。
デフォルトでは、新しい空のプロジェクトには 2 つのミドルウェアがあります -
IISPlatformHandler
ミドルウェアは app.Run
IISP に登録されていますlat formHandler によりウィンドウを使用できるようになります身元確認。受信した各要求を調べて、Windows ID 関連の要求があるかどうかを確認し、次のブロック ミドルウェアを呼び出します。
この場合、ミドルウェアは app.Run に登録されます。 Run メソッドを使用すると、各応答の処理に使用できる別のメソッドを渡すことができます。 Run メソッドは、ミドルウェア ターミナルと呼ぶことはあまりありません。
実行するように登録したミドルウェアが別のミドルウェアを呼び出すことはできません。できることは、リクエストを受信して、何らかの応答を生成することだけです。
応答オブジェクトにもアクセスでき、応答オブジェクトに文字列を追加できます。
app.Run の後に別のミドルウェアを登録したい場合、Run メソッドはミドルウェアの終端であるため、このミドルウェアは呼び出されません。次のブロックのミドルウェアを呼び出しません。
別のミドルウェアを追加するには、次の手順に進みます -
ステップ 1- プロジェクトを右クリックし、[NuGet パッケージの管理] を選択します。
ステップ 2- Microsoft.aspnet.diagnostics を検索します。この特定のパッケージには、使用できるさまざまな種類のミドルウェアが含まれています。
ステップ 3-パッケージがプロジェクトにインストールされていない場合は、このパッケージをインストールすることを選択します。
ステップ 4− 次に、Configure() メソッドで app.UseWelcomePage ミドルウェアを呼び出します。
// This method gets called by the runtime. // Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { app.UseIISPlatformHandler(); app.UseWelcomePage(); app.Run(async (context) => { var msg = Configuration["message"]; await context.Response.WriteAsync(msg); });
ステップ5 *-アプリケーションを実行すると、次のようこそ画面が表示されます。
このようこそ画面はあまり役に立たないかもしれません。
ステップ 6− ウェルカム ページを使用する代わりに、RuntimeInfoPage を使用して、もっと役立つ可能性のある別のことを試してみましょう。
1 // This method gets called by the runtime. 2 // Use this method to configure the HTTP request pipeline. 3 public void Configure(IApplicationBuilder app) { 4 app.UseIISPlatformHandler(); 5 app.UseRuntimeInfoPage(); 6 7 app.Run(async (context) => { 8 var msg = Configuration["message"]; 9 await context.Response.WriteAsync(msg); 10 }); 11 }
ステップ7 *-Startup.csページを保存してブラウザを更新すると、以下のページが表示されます。
この RuntimeInfoPage は、特定の URL に対するリクエストにのみ応答するミドルウェアです。受信リクエストが URL と一致しない場合、このミドルウェアは単純にリクエストを次のミドルウェアに渡します。リクエストは IISPlatformHandler ミドルウェアを経由して、UseRuntimeInfoPage ミドルウェアに送られます。応答は作成されないため、アプリケーションに送信されます。実行して文字列を表示します。
ステップ 8− URL の末尾に「runtimeinfo」を追加します。ミドルウェア別の実行時情報ページが表示されます。
オペレーティング システム、ランタイム バージョン、構造、タイプ、使用しているすべてのパッケージなど、ランタイム環境に関する情報を示すリターン ページが表示されます。
以上がasp.net core サンプル チュートリアルでミドルウェアをセットアップする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。