Tutorial: Menambahkan masuk ke aplikasi
Dalam tutorial sebelumnya, proyek ASP.NET Core dibuat dan dikonfigurasi untuk autentikasi. Tutorial ini akan menginstal paket yang diperlukan dan menambahkan kode yang mengimplementasikan autentikasi ke pengalaman masuk dan keluar.
Dalam tutorial ini:
- Mengidentifikasi dan menginstal paket NuGet yang diperlukan untuk autentikasi
- Menerapkan autentikasi dalam kode
- Menambahkan pengalaman masuk dan keluar
Prasyarat
- Penyelesaian prasyarat dan langkah-langkah dalam Tutorial: Menyiapkan aplikasi untuk autentikasi.
Menginstal paket identitas
Paket NuGet terkait identitas harus diinstal dalam proyek agar autentikasi pengguna diaktifkan.
- Di menu atas Visual Studio, pilih Alat > NuGet Package Manager > Kelola Paket NuGet untuk Solusi.
- Dengan tab Telusuri dipilih, cari dan pilih Microsoft.Identity.Web.UI. Pilih kotak centang Proyek , lalu pilih Instal.
- Ulangi ini untuk Microsoft.Identity.Web.Diagnostics dan Microsoft.Identity.Web.DownstreamApi.
Menerapkan autentikasi dan memperoleh token
Buka Program.cs dan ganti seluruh konten file dengan cuplikan berikut:
// <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["DownstreamApi:Scopes"]?.Split(' '); 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();
Menambahkan pengalaman masuk dan keluar
Setelah menginstal paket NuGet dan menambahkan kode yang diperlukan untuk autentikasi, tambahkan pengalaman masuk dan keluar.
Membuat file _LoginPartial.cshtml
- Perluas Halaman, klik kanan Bersama, lalu pilih Tambahkan > halaman Razor.
- Pilih Halaman Razor - Kosong, lalu pilih Tambahkan.
- Masukkan _LoginPartial.cshtml untuk nama tersebut, lalu pilih Tambahkan.
Mengedit file _LoginPartial.cshtml
Buka _LoginPartial.cshtml dan tambahkan kode berikut untuk menambahkan pengalaman masuk dan keluar:
@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>
Buka _Layout.cshtml dan tambahkan referensi untuk
_LoginPartial
dibuat di langkah sebelumnya. Baris tunggal ini harus ditempatkan antara</ul>
dan</div>
:</ul> <partial name="_LoginPartial" /> </div>