Übung: Verwenden integrierter Middleware

Abgeschlossen

ASP.NET Core umfasst eine Reihe integrierter Middlewarekomponenten, die allgemeine Aufgaben verarbeiten, z. B. Routing, Authentifizierung und HTTP-Protokollierung. Sie können diese Komponenten verwenden, um Ihrer App Funktionen hinzuzufügen, ohne benutzerdefinierte Middleware zu schreiben.

Ihre Teamleitung hat Sie beauftragt, eine abgespeckte Website für Ihr Unternehmen zu erstellen. Die Website sollte eine Willkommensnachricht auf der Hauptseite und eine kurze Geschichte des Unternehmens auf einer separaten /about-Seite enthalten. Bei einer früheren Version der App wurde die Unternehmensgeschichte unter der /history-URL angezeigt. Daher müssen Sie Anforderungen von /history an /about umleiten, um die Kompatibilität mit vorhandenen Links aufrechtzuerhalten.

Sie verwenden die integrierte MapGet-Methode und UrlRewriter-Middleware, um diese Aufgaben auszuführen.

Erstellen einer ASP.NET Core -App

Sie benötigen eine ASP.NET Core-App, die die Rolle der App Ihres Teams übernimmt. Erstellen wir nun eine neue ASP.NET Core-App mit der C# Dev Kit-Erweiterung in Visual Studio Code.

  1. Starten Sie Visual Studio Code.

  2. Drücken Sie STRG+UMSCHALT+P, um die Befehlspalette zu öffnen.

  3. Suchen und wählen Sie .NET: Neues Projekt....

  4. Suchen Sie nach ASP.NET Core Empty und wählen Sie es aus.

    Screenshot: Befehlspalette mit ausgewählter Option „ASP.NET Core leer“

  5. Wählen Sie einen Ordner für das neue Projekt aus, oder erstellen Sie einen Ordner.

  6. Geben Sie der neuen App den Namen MyWebApp.

  7. Klicken Sie auf Projekt erstellen, um das Projekt zu erstellen.

  8. Wenn das neue Projekt geöffnet wird, erweitern Sie den Bereich Solution Explorer, um die Projektdateien anzuzeigen.

Ausführen der App

Testen Sie die App, um sicherzustellen, dass sie ausgeführt wird.

  1. Drücken Sie in Visual Studio Code F5, um die App zu erstellen und auszuführen.

    1. Wenn Sie dazu aufgefordert werden, wählen Sie C# als Debugger aus.
    2. Wenn Sie dazu aufgefordert werden, wählen Sie C#: MyWebApp [Standardkonfiguration] als zu verwendende Startkonfiguration aus.

    Mit diesem Befehl wird die App gestartet und auf einem lokalen Webserver gehostet. Ein Browserfenster wird geöffnet und zeigt „Hallo Welt!“ an.

  2. Schließen Sie das Browserfenster, und beenden Sie die App, indem Sie UMSCHALT+F5 in Visual Studio Code drücken.

Zuordnen von Endpunkten und Hinzufügen eines URL-Rewriter

Nun, da Sie über eine funktionierende App verfügen, lassen Sie uns eine Willkommensnachricht auf der Hauptseite hinzufügen.

  1. Öffnen Sie die Datei Program.cs.

  2. Ändern Sie in der Zeile app.MapGet("/", () => "Hello World!"); die Nachricht „Hallo Welt“ in „Willkommen bei Contoso!“.

    app.MapGet("/", () => "Welcome to Contoso!");
    

    app.MapGet() ordnet eine HTTP GET-Anforderung einem angegebenen Pfad zu. Dieses Feature von ASP.NET Core wird Endpunktrouting genannt. Dieser Code fügt der Pipeline eine Verzweigung hinzu. Wenn der Anforderungspfad / ist, leitet die Endpunktrouting-Middleware die Anforderung an diesen Endpunkt weiter. Daraufhin wird „Willkommen bei Contoso!“ in die Antwort geschrieben.

  3. Fügen Sie in der nächsten Zeile den folgenden Code ein:

    app.MapGet("/about", () => "Contoso was founded in 2000.");
    

    Dieser Code fügt einen weiteren Endpunkt hinzu. Wenn der Anforderungspfad /about ist, schreibt der Endpunkt „Unser Unternehmen wurde im Jahr 2000 gegründet.“ in die Antwort.

  4. Fügen Sie vor dem ersten app.MapGet()-Element den folgenden Code hinzu:

    app.UseRewriter(new RewriteOptions().AddRedirect("history", "about"));
    

    Dieser Code fügt eine Middlewarekomponente für den URL-Rewriter hinzu, die Anforderungen von /history an /about umleitet. Die AddRedirect()-Methode verwendet zwei Parameter: ein Muster für reguläre Ausdrücke zum Abgleichen des Anforderungspfad und den Ersatzpfad für die Umleitung.

  5. Fügen Sie am Anfang der Datei die folgende -Anweisung hinzu:

    using Microsoft.AspNetCore.Rewrite;
    

    Diese Anweisung löst den Verweis auf die RewriteOptions-Klasse auf.

Testen der Änderungen

  1. Speichern Sie alle Änderungen, und führen Sie die App wie zuvor aus.
  2. Wenn das Browserfenster geöffnet wird, beachten Sie, dass unter der Stamm-URL „Willkommen bei Contoso!“ angezeigt wird. Fügen Sie der URL /about hinzu, und drücken Sie die EINGABETASTE. Im Browser sollte der Satz „Contoso wurde im Jahr 2000 gegründet.“ angezeigt werden.
  3. Ersetzen Sie in der URL /about durch /history, und drücken Sie die EINGABETASTE. Der Browser sollte an /about umleiten.
  4. Lassen Sie die Anwendung für die nächste Übung geöffnet.