Oefening: ingebouwde middleware gebruiken
ASP.NET Core bevat een set ingebouwde middlewareonderdelen die algemene taken verwerken, zoals routering, verificatie en HTTP-logboekregistratie. U kunt deze onderdelen gebruiken om functionaliteit aan uw app toe te voegen zonder aangepaste middleware te schrijven.
Uw teamleider heeft u in opdracht een barebones-website voor uw bedrijf te maken. De website moet een welkomstbericht op de hoofdpagina weergeven en een korte geschiedenis van het bedrijf weergeven op een afzonderlijke /about pagina. Een eerdere versie van de app had de bedrijfsgeschiedenis op de /history URL, dus u moet aanvragen omleiden /history om /about compatibiliteit met bestaande koppelingen te behouden.
U gebruikt de ingebouwde MapGet methode en UrlRewriter middleware om deze taken uit te voeren.
Een ASP.NET Core-app maken
U hebt een ASP.NET Core-app nodig om de rol van de app van uw team te spelen. Laten we een nieuwe ASP.NET Core-app maken met behulp van de C#Dev Kit-extensie in Visual Studio Code.
Start Visual Studio Code.
Druk op Ctrl+Shift+P om het opdrachtenpalet te openen.
Zoek en selecteer .NET: Nieuw project....
Zoek en selecteer ASP.NET Core Empty.
Selecteer of maak een map voor het nieuwe project.
Geef de nieuwe app de naam MyWebApp.
Selecteer Project maken om het project te maken.
Wanneer het nieuwe project wordt geopend, vouwt u het
Solution Explorerdeelvenster uit om de projectbestanden weer te geven.
De app uitvoeren
Test de app om ervoor te zorgen dat deze wordt uitgevoerd.
Druk in Visual Studio Code op F5 om de app te bouwen en uit te voeren.
- Wanneer u hierom wordt gevraagd, selecteert u C# als het foutopsporingsprogramma.
- Wanneer u hierom wordt gevraagd, selecteert u C#: MyWebApp [Standaardconfiguratie] als de startconfiguratie die u wilt gebruiken.
Met deze opdracht wordt de app gestart en gehost op een lokale webserver. Er wordt een browservenster geopend en wordt 'Hallo, wereld!' weergegeven
Sluit het browservenster en stop de app door in Visual Studio Code op Shift+F5 te drukken.
Eindpunten toewijzen en een URL-herschrijfmachine toevoegen
Nu u een werkende app hebt, gaan we een welkomstbericht toevoegen aan de hoofdpagina.
Open het bestand Program.cs .
Wijzig op de
app.MapGet("/", () => "Hello World!");regel het bericht 'Hallo wereld!' in 'Welkom bij Contoso!'app.MapGet("/", () => "Welcome to Contoso!");app.MapGet()wijst een HTTP GET-aanvraag toe aan een opgegeven pad. Deze functie van ASP.NET Core wordt eindpuntroutering genoemd. Met deze code wordt een vertakking aan de pijplijn toegevoegd. Als het aanvraagpad is/, stuurt de middleware voor eindpuntroutering de aanvraag naar dit eindpunt, waarna 'Welkom bij Contoso!' naar het antwoord wordt geschreven.Voeg op de volgende regel de volgende code toe:
app.MapGet("/about", () => "Contoso was founded in 2000.");Met deze code wordt een ander eindpunt toegevoegd. Als het aanvraagpad is
/about, schrijft het eindpunt 'Ons bedrijf is opgericht in 2000'.Voeg vóór de eerste
app.MapGet()de volgende code toe:app.UseRewriter(new RewriteOptions().AddRedirect("history", "about"));Met deze code wordt een MIDDLEWARE-onderdeel voor URL-herschrijffunctie toegevoegd waarmee aanvragen worden omgeleid van
/historynaar/about. DeAddRedirect()methode gebruikt twee parameters: een patroon voor een reguliere expressie die overeenkomt met het aanvraagpad en het vervangende pad naar omleiden.Voeg de volgende instructie toe aan het begin van het bestand:
using Microsoft.AspNetCore.Rewrite;Deze richtlijn lost de verwijzing naar de
RewriteOptionsklasse op.
De wijzigingen testen
- Sla al uw wijzigingen op en voer de app uit zoals voorheen.
- Wanneer het browservenster wordt geopend, ziet u dat in de hoofd-URL 'Welkom bij Contoso' wordt weergegeven. Voeg toe
/aboutaan de URL en druk op Enter. In de browser moet 'Contoso is opgericht in 2000' worden weergegeven. - Vervang
/aboutdoor/historyin de URL en druk op Enter. De browser moet worden omgeleid naar/about. - Laat de app actief voor de volgende oefening.