[Record] DOTNET 5 如何在已開始的專案加入 Identity

專案開始時, 沒有使用官方預設的 Identity 建制專案, 專案中如何新增與需要補充什麼內容呢?

概述

自己做 Side Project 時, 計劃需要加入登入驗證功能。

由於建制專案時沒有選擇預設 Identity, 並且對登入驗證不熟悉, 故使用官方預設的程式碼進行測試。

以下將是我的測試記錄。

 

內容

預先建立一個 ASP .NET Core (MVC) 專案,並且使用 .NET 5 與不選擇 Identity 預設補充。

 

專案開啟後, 專案需要兩個 Nuget:

  1. Microsoft.AspNetCore.Identity.UI
  2. Microsoft.EntityFrameworkCore.Design

 

加入 Nuget 後, 在 Solution 上右擊新增新的 Scaffolded 物件。

在選項內選擇 Identity - Identity

點擊 Next 後會跳出大量預設的 Identity 方法做使用。

我們需要設定路徑至 _Layout,並且設定 Content ,Content 我們將使用預設文字。

完成後, 專案將自動填入 Identity 的方法

 

開啟 Startup.cs 加入以下段落:

ConfigureService 的 Fanction 內加入 service.AddRazorPages, 開啟 Razor 方法

public void ConfigureServices(IServiceCollection services)
{
        services.AddControllersWithViews();
        
	//啟動 Razor Page 服務
	services.AddRazorPages();
}

Configure 的 Function 內, 

  1. 在 app.UseAuthorization 上加入 app.UseAuthentiocation 補上驗證, Configure 具有循序之別
  2. 在 app.UseEndpoints 內加入 endpoints.MapRazorPages, 允許 Razor Mapping
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
	if (env.IsDevelopment())
	{
        	app.UseDeveloperExceptionPage();
        }
        else
        {
             	app.UseExceptionHandler("/Home/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
        }
        
        app.UseHttpsRedirection();
        app.UseStaticFiles();

        app.UseRouting();
	
	//加入驗證機制
        app.UseAuthentication();
        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
        	endpoints.MapControllerRoute(
               		name: "default",
                    	pattern: "{controller=Home}/{action=Index}/{id?}");
                
                //允許 Mapping Razor Page
                endpoints.MapRazorPages();
	});
}

 

開啟 _Layout, 在 ul 下補上 partial name, 為了顯示 Login 與 Register, 位置如下:

<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
	<ul class="navbar-nav flex-grow-1">
        	<li class="nav-item">
                	<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
                </li>
                <li class="nav-item">
                	<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
        	</li>
	</ul>
	<partial name="_LoginPartial">
</div>

 

完成以上填寫後, 開啟 Package Manager Console (PMC) 執行以下指令, 使用預設的 Model 至 SQL 內進行創建

Add-Migration initial

Update-Database

 

完成後再執行測試即可

 

參考鏈接

 

感謝閱讀

分級: 入門是認識, 基本是運用, 進階是混合結合
範本是已可下載或可使用的範例, 至於教程當然是學習的結晶