Kurz: Přidání přihlášení do aplikace
V předchozím kurzuse vytvořil a nakonfiguroval projekt ASP.NET Core pro ověřování. Tento kurz nainstaluje požadované balíčky a přidá kód, který implementuje ověřování do prostředí přihlašování a odhlášení.
V tomto kurzu:
- Identifikace a instalace balíčků NuGet potřebných k ověřování
- Implementace ověřování v kódu
- Přidání zkušeností s přihlášením a odhlášením
Požadavky
- Dokončení požadavků a kroků v kurzu : Příprava aplikace na ověřování.
Nainstalujte balíčky identit
Identity související balíčky NuGet musí být nainstalované v projektu, aby bylo možné povolit ověřování uživatelů.
- V horní nabídce sady Visual Studio vyberte Tools > Správce balíčků NuGet > Spravovat balíčky NuGet prořešení .
- Na kartě Procházet vyhledejte a vyberte Microsoft.Identity.Web.UI. Zaškrtněte políčko Project a poté zvolte Nainstalovat.
- Tento postup opakujte pro Microsoft.Identity.Web.Diagnostics a Microsoft.Identity.Web.DownstreamApi.
Implementace ověřování a získání tokenů
Otevřete Program.cs a nahraďte celý obsah souboru následujícím fragmentem kódu:
// <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();
Přidejte zážitek z přihlašování a odhlašování
Po instalaci balíčků NuGet a přidání potřebného kódu pro ověřování přidejte prostředí pro přihlášení a odhlášení.
Vytvoření souboru _LoginPartial.cshtml
- Rozbalte Pages, klepněte pravým tlačítkem myši na Shareda potom vyberte Přidat > stránku Razor.
- Vyberte Razor Page – prázdnéa pak vyberte Přidat.
- Jako název zadejte
_LoginPartial.cshtml a pak vyberte Přidat .
Upravte soubor _LoginPartial.cshtml
Otevřete _LoginPartial.cshtml a přidejte následující kód pro přidání přihlášení a odhlášení:
@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>
Otevřete
_Layout.cshtml a přidejte odkaz na vytvořený v předchozím kroku. Tato jedna čára by měla být umístěna mezi </ul>
a</div>
:</ul> <partial name="_LoginPartial" /> </div>