Esercizio: Usare middleware predefinito
ASP.NET Core include un set di componenti middleware predefiniti che gestiscono attività comuni, ad esempio routing, autenticazione e registrazione HTTP. È possibile usare questi componenti per aggiungere funzionalità all'app senza scrivere middleware personalizzato.
Il responsabile del team ha richiesto di creare un sito Web barebone per l'azienda. Il sito Web deve visualizzare un messaggio di benvenuto nella pagina principale e visualizzare una breve cronologia della società in una pagina /about separata. Una versione precedente dell'app aveva la cronologia aziendale nell'URL /history, quindi è necessario reindirizzare le richieste da /history a /about per mantenere la compatibilità con i collegamenti esistenti.
Per eseguire queste attività, si userà il metodo MapGet predefinito e il middleware UrlRewriter.
Creare un'app ASP.NET Core
È necessaria un'app ASP.NET Core per svolgere il ruolo dell'app del team. Ora verrà creata una nuova app ASP.NET Core usando l'estensione C# Dev Kit in Visual Studio Code.
Avviare Visual Studio Code.
Premere CTRL+MAIUSC+P per aprire il riquadro comandi.
Cercare e selezionare .NET: Nuovo progetto....
Cercare e selezionare ASP.NET Core Empty.
Selezionare o creare una cartella per il nuovo progetto.
Assegnare il nome MyWebApp alla nuova app.
Selezionare Create project (Crea progetto) per creare il progetto.
Quando si apre il nuovo progetto, espandere il riquadro
Solution Explorerper visualizzare i file di progetto.
Eseguire l'app
Provare l'app per assicurarsi che venga eseguita.
In Visual Studio Code, premere F5 per compilare ed eseguire l'app.
- Quando viene chiesto, selezionare C# come debugger.
- Quando viene chiesto, selezionare C#: MyWebApp [Configurazione predefinita] come configurazione di avvio da usare.
Questo comando avvia l'app e la ospita in un server Web locale. Si apre una finestra del browser che visualizza "Hello, World!"
Chiudere la finestra del browser e arrestare l'app premendo MAIUSC+F5 in Visual Studio Code.
Eseguire il mapping degli endpoint e aggiungere un rewriter URL
Una volta creata un'app funzionante, aggiungere un messaggio di benvenuto alla pagina principale.
Aprire il file Program.cs.
Nella riga
app.MapGet("/", () => "Hello World!");, modificare il messaggio "Hello World!" in "Welcome to Contoso!"app.MapGet("/", () => "Welcome to Contoso!");app.MapGet()esegue il mapping di una richiesta HTTP GET a un percorso specificato. Questa funzionalità di ASP.NET Core è denominata routing degli endpoint. Questo codice aggiunge un ramo alla pipeline. Se il percorso della richiesta è/, il middleware di routing dell'endpoint instrada la richiesta a questo endpoint, che quindi scrive "Welcome to Contoso!" nella risposta.Nella riga successiva, aggiungere il codice seguente:
app.MapGet("/about", () => "Contoso was founded in 2000.");Questo codice aggiunge un altro endpoint. Se il percorso della richiesta è
/about, l'endpoint scrive "Our company was founded in 2000." nella risposta.Aggiungere il codice seguente prima del primo
app.MapGet():app.UseRewriter(new RewriteOptions().AddRedirect("history", "about"));Questo codice aggiunge un componente middleware di rewriter URL che reindirizza le richieste da
/historya/about. Il metodoAddRedirect()accetta due parametri: un criterio di espressione regolare in modo che corrisponda al percorso della richiesta e il percorso di sostituzione a cui eseguire il reindirizzamento.Aggiungere la direttiva seguente all'inizio del file:
using Microsoft.AspNetCore.Rewrite;Questa direttiva risolve il riferimento alla classe
RewriteOptions.
Testare le modifiche
- Salvare tutte le modifiche ed eseguire l'app come prima.
- Quando si apre la finestra del browser, si noti che l'URL radice visualizza "Welcome to Contoso!" Aggiungere
/aboutall'URL e premi INVIO. Il browser dovrebbe visualizzare "Contoso was founded in 2000". - Sostituire
/aboutcon/historynell'URL e premere INVIO. Il browser dovrebbe essere reindirizzato a/about. - Lasciare l'app in esecuzione per l'esercizio successivo.