Heim  >  Artikel  >  Backend-Entwicklung  >  Tutorial zur ASP.NET Core-Middleware-Einstellung (7)_Praktische Tipps

Tutorial zur ASP.NET Core-Middleware-Einstellung (7)_Praktische Tipps

微波
微波Original
2017-06-28 14:07:481519Durchsuche

In diesem Artikel wird hauptsächlich das Einstellungs-Tutorial von ASP.NETCoreMiddleware im Detail vorgestellt. Interessierte Freunde können darauf verweisen

Asp .Net Core-Middleware

In diesem Kapitel erfahren Sie, wie Sie Middleware einrichten. Die Middleware-Technologie in ASP.NET Core steuert, wie unsere Anwendungen auf HTTP-Anfragen reagieren. Es kann auch Anwendungsausnahmefehler kontrollieren, was entscheidend dafür ist, wie Benutzer authentifiziert und autorisiert werden, bestimmte Aktionen auszuführen.

  • Middleware ist eine Softwarekomponente, die in die Pipeline einer Anwendung eingebaut wird, um Anfragen und Antworten zu verarbeiten.

  • Jede Komponente kann wählen, ob sie die Anfrage an die nächste Komponente in der Pipeline weiterleiten möchte oder nicht, und kann vor und nach Aufgaben in der Pipeline bestimmte Aktionen ausführen.

  • Der Request-Delegat wird zum Aufbau der Request-Pipeline verwendet. Der Request-Delegate wird zur Bearbeitung jeder HTTP-Anfrage verwendet.

  • Jedes Stück Middleware in ASP.NET Core ist ein Objekt, und jedes Stück hat eine sehr spezifische, fokussierte und begrenzte Rolle.

  • Letztendlich benötigen wir eine Menge Middleware, um der Anwendung ein angemessenes Verhalten zu bieten.

Nehmen wir nun an, wir möchten jede Anfrage an unsere Anwendung protokollieren.

  • In diesem Fall ist das erste Stück Middleware, das wir in die Anwendung installieren, eine Protokollierungskomponente.

  • Dieser Logger kann alle eingehenden Anfragen sehen, und dann protokolliert die Middleware nur einige Informationen und leitet die Anfrage dann an die nächste Block-Middleware weiter.

  • Middleware erscheint als eine Reihe von Komponenten in dieser Verarbeitungspipeline.

  • Die nächste Middleware, die wir in unsere Anwendung installieren, ist eine Autorisierungskomponente.

  • Eine Komponente sucht möglicherweise nach einem bestimmten Cookie oder greift auf ein Token im HTTP-Header zu.

  • Wenn die Autorisierungskomponente ein Token findet, lässt sie die Fortsetzung der Anfrage zu.

  • Wenn nicht, antwortet die Autorisierungskomponente selbst möglicherweise mit einem HTTP-Fehlercode auf die Anfrage oder leitet den Benutzer zur Anmeldeseite weiter.

  • Andernfalls leitet die Autorisierungskomponente die Anfrage an die Middleware des nächsten Routers weiter.

  • Ein Router schaut sich die URL an und bestimmt die nächste Aktion.

  • Der Router führt einige Antworten aus. Wenn der Router keine Antwort findet, gibt der Router selbst möglicherweise den Fehler „404 Nicht gefunden“ zurück.

Fall

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); 
  } 
}

In der Methode „Configure()“ rufen wir die Erweiterungsmethode der IApplicationBuilder-Schnittstelle auf, um Middleware hinzuzufügen.

Standardmäßig gibt es zwei Teile der Middleware in einem neuen leeren Projekt –

IISPlatformHandler

Middleware, die bei app.Run registriert ist

IISPlatformHandler

IISPlatformHandler ermöglicht uns die Verwendung der Windows-Authentifizierung. Es prüft jede eingehende Anfrage, um zu sehen, ob es Anfragen bezüglich der Windows-Identität gibt, und ruft dann die nächste Block-Middleware auf.

Middleware bei app.Run registriert

In diesem Fall wird eine Middleware bei app.Run registriert. Mit der Run-Methode können wir eine weitere Methode übergeben, mit der wir jede Antwort verarbeiten können. Die Run-Methode sieht man nicht oft, wir können sie als Middleware-Terminal bezeichnen.

Die Middleware, für deren Ausführung Sie sich registrieren, hat nie die Möglichkeit, eine andere Middleware aufzurufen. Sie kann lediglich die Anfrage empfangen und eine Antwort erzeugen.

Sie haben auch Zugriff auf ein Antwortobjekt und können dem Antwortobjekt einige Strings hinzufügen.

Wenn Sie nach app.Run eine weitere Middleware registrieren möchten, wird diese Middleware niemals aufgerufen, da die Run-Methode das Terminal einer Middleware ist. Es ruft nicht die Middleware für den nächsten Block auf.

So fügen Sie eine Middleware hinzu

Fahren wir mit den folgenden Schritten fort, um eine weitere Middleware hinzuzufügen −

Schritt 1 − Klicken Sie mit der rechten Maustaste auf das Menü Klicken Sie auf das Projekt und wählen Sie NuGet-Pakete verwalten aus.

Schritt 2–Suchen Sie nach Microsoft.aspnet.diagnostics. Dieses spezielle Paket enthält viele verschiedene Arten von Middleware, die wir verwenden können.

Schritt 3− Wenn das Paket nicht in Ihrem Projekt installiert ist, wählen Sie die Installation aus.

Schritt 4− Rufen wir nun die app.UseWelcomePage-Middleware in der Methode „Configure()“ auf.

// 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); 
  });

Schritt 5 – Führen Sie Ihre Anwendung aus und Sie sehen den folgenden Begrüßungsbildschirm.

Dieser Begrüßungsbildschirm ist möglicherweise nicht so nützlich.

步骤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”。现在,您将看到一个页面,该页面是由中间件运行时信息页面。

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

Das obige ist der detaillierte Inhalt vonTutorial zur ASP.NET Core-Middleware-Einstellung (7)_Praktische Tipps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn