Öğretici: Uygulamaya oturum açma ekleme
Önceki öğreticide, kimlik doğrulaması için bir ASP.NET Core projesi oluşturuldu ve yapılandırıldı. Bu öğreticide gerekli paketler yüklenir ve oturum açma ve oturum kapatma deneyimine kimlik doğrulaması uygulayan kod eklenir.
Bu öğreticide:
- Kimlik doğrulaması için gereken NuGet paketlerini tanımlama ve yükleme
- Kodda kimlik doğrulamasını uygulama
- Oturum açma ve oturumu kapatma deneyimlerini ekleme
Önkoşullar
- Öğretici: Uygulamayı kimlik doğrulaması için hazırlama bölümünde önkoşulların ve adımların tamamlanması.
Kimlik paketlerini yükleme
Kullanıcıların kimlik doğrulamasının etkinleştirilmesi için projeye kimlikle ilgili NuGet paketleri yüklenmelidir.
- Visual Studio'nun üst menüsünde Araçlar > NuGet Paket Yöneticisi > Çözüm için NuGet Paketlerini Yönet'i seçin.
- Gözat sekmesi seçili durumdayken Microsoft.Identity.Web.UI için arama yapın ve seçin. Proje onay kutusunu ve ardından Yükle'yi seçin.
- Bunu Microsoft.Identity.Web.Diagnostics ve Microsoft.Identity.Web.DownstreamApi için yineleyin.
Kimlik doğrulamayı uygulama ve belirteçleri alma
Program.cs açın ve tüm dosya içeriğini aşağıdaki kod parçacığıyla değiştirin:
// <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();
Oturum açma ve oturumu kapatma deneyimini ekleme
NuGet paketlerini yükledikten ve kimlik doğrulaması için gerekli kodu ekledikten sonra oturum açma ve oturum kapatma deneyimlerini ekleyin.
_LoginPartial.cshtml dosyasını oluşturma
- Sayfalar'ı genişletin, Paylaşılan'a sağ tıklayın ve Razor sayfası ekle'yi > seçin.
- Razor Sayfası - Boş'a ve ardından Ekle'ye tıklayın.
- Ad için _LoginPartial.cshtml yazın ve Ekle'yi seçin.
_LoginPartial.cshtml dosyasını düzenleme
_LoginPartial.cshtml dosyasını açın ve oturum açma ve oturumu kapatma deneyimini eklemek için aşağıdaki kodu ekleyin:
@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>
_Layout.cshtml dosyasını açın ve önceki adımda oluşturulan öğesine
_LoginPartial
bir başvuru ekleyin. Bu tek satır ve</div>
arasına</ul>
yerleştirilmelidir:</ul> <partial name="_LoginPartial" /> </div>