Guida: Aggiungere l'autenticazione a un'applicazione
Nell'esercitazione precedente è stato creato e configurato un progetto ASP.NET Core per l'autenticazione. Questo tutorial installerà i pacchetti necessari e aggiungerà il codice che implementa l'autenticazione all'esperienza di accesso e disconnessione.
In questa esercitazione:
- Identificare e installare i pacchetti NuGet necessari per l'autenticazione
- Implementare l'autenticazione nel codice
- Aggiungere le funzionalità di accesso e disconnessione
Prerequisiti
- Completare i prerequisiti e i passaggi descritti nella Guida: Preparare un'applicazione per l'autenticazione.
Installare i pacchetti identity
I pacchetti NuGet correlati all'identità devono essere installati nel progetto per abilitare l'autenticazione degli utenti.
- Visual Studio
- di Visual Studio Code
- Nella barra dei menu in alto di Visual Studio, selezionare Strumenti > Gestione pacchetti NuGet > Gestisci pacchetti NuGet per la soluzione.
- Con la scheda Browse selezionata, cercare e selezionare Microsoft.Identity.Web.UI. Selezionare la casella di controllo Progetto
e quindi selezionare Installa . - Ripetere questa operazione per Microsoft.Identity.Web.Diagnostics e Microsoft.Identity.Web.DownstreamApi.
Implementare l'autenticazione e acquisire i token
Aprire Program.cs e sostituire l'intero contenuto del file con il frammento di codice seguente:
// <ms_docref_import_types> using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc.Authorization; using Microsoft.Identity.Web; using Microsoft.Identity.Web.UI; // </ms_docref_import_types> // <ms_docref_add_msal> WebApplicationBuilder builder = WebApplication.CreateBuilder(args); IEnumerable<string>? initialScopes = builder.Configuration.GetSection("DownstreamApi:Scopes").Get<IEnumerable<string>>(); builder.Services.AddMicrosoftIdentityWebAppAuthentication(builder.Configuration, "AzureAd") .EnableTokenAcquisitionToCallDownstreamApi(initialScopes) .AddDownstreamApi("DownstreamApi", builder.Configuration.GetSection("DownstreamApi")) .AddInMemoryTokenCaches(); // </ms_docref_add_msal> // <ms_docref_add_default_controller_for_sign-in-out> builder.Services.AddRazorPages().AddMvcOptions(options => { var policy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .Build(); options.Filters.Add(new AuthorizeFilter(policy)); }).AddMicrosoftIdentityUI(); // </ms_docref_add_default_controller_for_sign-in-out> // <ms_docref_enable_authz_capabilities> WebApplication app = builder.Build(); app.UseAuthentication(); app.UseAuthorization(); // </ms_docref_enable_authz_capabilities> app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.MapRazorPages(); app.MapControllers(); app.Run();
Aggiungere l'esperienza di accesso e uscita
Dopo aver installato i pacchetti NuGet e aver aggiunto il codice necessario per l'autenticazione, aggiungere le esperienze di accesso e uscita.
Creare il file _LoginPartial.cshtml
- Visual Studio
- di Visual Studio Code
- Espandi Pagine, clic con il tasto destro su Condivisoe quindi seleziona Aggiungi > pagina Razor.
- Selezionare Pagina Razor Vuotae quindi selezionare Aggiungi.
- Immettere _LoginPartial.cshtml per il nome e quindi selezionare Aggiungi.
Modificare il file _LoginPartial.cshtml
Aprire _LoginPartial.cshtml e aggiungere il codice seguente per aggiungere l'esperienza di accesso e uscita:
@using System.Security.Principal <ul class="navbar-nav"> @if (User.Identity?.IsAuthenticated == true) { <li class="nav-item"> <span class="navbar-text text-dark">Hello @User.Identity?.Name!</span> </li> <li class="nav-item"> <a class="nav-link text-dark" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignOut">Sign out</a> </li> } else { <li class="nav-item"> <a class="nav-link text-dark" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignIn">Sign in</a> </li> } </ul>
Aprire _Layout.cshtml e aggiungere un riferimento a
_LoginPartial
creato nel passaggio precedente. Questa singola riga deve essere posizionata tra</ul>
e</div>
:</ul> <partial name="_LoginPartial" /> </div>
Passaggi successivi
esercitazione : Chiamare un'API e visualizzare i risultati