Heim  >  Artikel  >  Backend-Entwicklung  >  So richten Sie Middleware im Asp.net Core-Beispiel-Tutorial ein

So richten Sie Middleware im Asp.net Core-Beispiel-Tutorial ein

零下一度
零下一度Original
2017-06-16 10:04:231685Durchsuche

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 die erste Middleware, die wir in der 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

Lassen Sie uns nun anhand eines einfachen Beispiels mehr über Middleware verstehen. Wir konfigurieren die Middleware-Komponente mithilfe der Methode „Configure“ unserer Startup-Klasse.


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接口的扩展方法来添加中间件。

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

  • IISPlatformHandler

  • Mit app.Run registrierte Middleware


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 Zeichenfolgen 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 Projekt und wählen Sie NuGet-Pakete verwalten.

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.

Schritt 6– Probieren wir etwas anderes aus, das möglicherweise nützlicher ist. Anstatt die Begrüßungsseite zu verwenden, verwenden wir die 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 }

Schritt 7 – Speichern Sie Ihre Startup.cs-Seite und aktualisieren Sie Ihren Browser. Sie sehen die Seite unten.

Diese RuntimeInfoPage ist Middleware, die nur auf Anfragen für eine bestimmte URL antwortet. Wenn die eingehende Anfrage nicht mit der URL übereinstimmt, leitet diese Middleware die Anfrage einfach an die nächste Middleware weiter. Die Anfrage durchläuft die IISPlatformHandler-Middleware und gelangt dann zur UseRuntimeInfoPage-Middleware. Es wird keine Antwort erstellt, daher geht es an unsere Anwendung. Führen Sie die Zeichenfolge aus und zeigen Sie sie an.

Schritt 8– Wir fügen „runtimeinfo“ am Ende der URL hinzu. Sie sehen nun eine Seite mit Laufzeitinformationen der Middleware.

Sie sehen eine Rückkehrseite, die Ihnen einige Informationen über Ihre Laufzeitumgebung anzeigt, wie z. B. Betriebssystem, Laufzeitversion, Struktur, Typ und die von Ihnen ausgeführten Informationen Alle verwendeten Pakete.

Das obige ist der detaillierte Inhalt vonSo richten Sie Middleware im Asp.net Core-Beispiel-Tutorial ein. 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