ホームページ >バックエンド開発 >C#.Net チュートリアル >ASP.NET Coreミドルウェア設定チュートリアル(7)_実践ヒント

ASP.NET Coreミドルウェア設定チュートリアル(7)_実践ヒント

微波
微波オリジナル
2017-06-28 14:07:481562ブラウズ

この記事では、主に ASP.NET CoreMiddleware の設定チュートリアルを詳しく紹介します。興味のある方は、

Asp.Net Core-Middleware

を参照してください。ミドルウェアのセットアップ方法。 ASP.NET Core のミドルウェア テクノロジは、アプリケーションが HTTP 要求にどのように応答するかを制御します。また、アプリケーション例外エラーを制御することもできます。これは、ユーザーがどのように認証され、特定のアクションの実行を許可されるかにおいて重要です。

  • ミドルウェアは、リクエストと応答を処理するためにアプリケーションのパイプラインに組み込まれるソフトウェア コンポーネントです。

  • 各コンポーネントは、パイプライン内の次のコンポーネントにリクエストを渡すかどうかを選択でき、パイプライン内のタスクの前後に特定のアクションを実行できます。

  • リクエストデリゲートは、リクエストパイプラインを構築するために使用されます。リクエスト デリゲートは、各 HTTP リクエストを処理するために使用されます。

  • ASP.NET Core のミドルウェアのすべての部分はオブジェクトであり、各部分には非常に具体的で焦点が絞られた限定された役割があります。

  • 最終的には、アプリケーションに適切な動作を提供するために多くのミドルウェアが必要になります。

ここで、すべてのリクエストをアプリケーションに記録したいと仮定しましょう。

  • ミドルウェアは、この処理パイプラインに一連のコンポーネントとして表示されます。

  • アプリケーションにインストールする次のミドルウェアは、認可コンポーネントです。

  • コンポーネントは、特定の

    cookie を探しているか、HTTP ヘッダー内のトークンにアクセスしている可能性があります。

  • 認可コンポーネントがトークンを見つけた場合、リクエストの続行が許可されます。

  • そうでない場合、認可コンポーネント自体が HTTP エラー コードでリクエストに応答するか、ユーザーをログイン ページにリダイレクトする可能性があります。

  • それ以外の場合、認可コンポーネントはリクエストを次のルーターのミドルウェアに渡します。

  • ルーターは URL を見て、次のアクションを決定します。

  • ルーターがいくつかの応答を行っているが、応答が見つからない場合、ルーター自体が 404 Not Found エラーを返す可能性があります。

の場合

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

IISPlatformHandler

IISPlatformHandler に登録されたミドルウェアにより、Windows 認証を使用できるようになります。受信した各要求を調べて、Windows ID 関連の要求があるかどうかを確認し、次のブロック ミドルウェアを呼び出します。

app.Run に登録されたミドルウェア

この場合、ミドルウェアは 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。

// This method gets called by the runtime. 
// Use this method to configure the HTTP request pipeline. 
public void Configure(IApplicationBuilder app) { 
  app.UseIISPlatformHandler(); 
  app.UseRuntimeInfoPage(); 
  
  app.Run(async (context) => { 
   var msg = Configuration["message"]; 
   await context.Response.WriteAsync(msg); 
  }); 
}

第 7 步 − 保存您的 Startup.cs 页面并刷新您的浏览器,你会看到下面的页面。

这个 RuntimeInfoPage 是中间件,将只响应一个特定的 URL 的请求。如果传入的请求与该 URL 不匹配,这个中间件只是让请求传递到下一件中间件。该请求将通过 IISPlatformHandler 中间件,然后转到 UseRuntimeInfoPage 中间件。它不会创建响应,所以它会转到我们的应用程序。运行并显示该字符串。

步骤8−我们在URL结尾添加“ runtimeinfo”。现在,您将看到一个页面,该页面是由中间件运行时信息页面。

你将看到一个返回页面,它给你展示了一些关于你的运行时环境,如操作系统、运行时版本,结构,类型和您正在使用的所有包的信息。

以上がASP.NET Coreミドルウェア設定チュートリアル(7)_実践ヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。