專案開始時, 沒有使用官方預設的 Identity 建制專案, 專案中如何新增與需要補充什麼內容呢?
概述
自己做 Side Project 時, 計劃需要加入登入驗證功能。
由於建制專案時沒有選擇預設 Identity, 並且對登入驗證不熟悉, 故使用官方預設的程式碼進行測試。
以下將是我的測試記錄。
內容
預先建立一個 ASP .NET Core (MVC) 專案,並且使用 .NET 5 與不選擇 Identity 預設補充。
專案開啟後, 專案需要兩個 Nuget:
- Microsoft.AspNetCore.Identity.UI
- 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 內,
- 在 app.UseAuthorization 上加入 app.UseAuthentiocation 補上驗證, Configure 具有循序之別
- 在 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
完成後再執行測試即可
參考鏈接
- MVC User Registration & Login with ASP.NET Core Identity - https://www.codaffection.com/asp-net-core-article/asp-net-core-identity-for-user-authentication-and-registration/
感謝閱讀