Google Code Prettify

如何使用 ASP.NET Core 8 的 Authorization ?

 ASP.NET Core 8 提供了豐富的授權(Authorization)機制,讓你可以有效地管理應用程式中的用戶權限和資源訪問。以下是使用 ASP.NET Core 8 的授權的一般步驟:

  1. 引用所需的套件:確保你的專案引用了 Microsoft.AspNetCore.Authorization 套件,你可以在專案的 csproj 檔案中加入以下套件參考:
xml
<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="8.0.0" />
  1. 設定授權策略:在 Startup.cs 中的 ConfigureServices 方法中設定授權策略。你可以通過 AddAuthorization 方法來設定:
csharp
services.AddAuthorization(options => { options.AddPolicy("RequireAdminRole", policy => policy.RequireRole("Admin")); options.AddPolicy("RequireUserRole", policy => policy.RequireRole("User")); });

上面的示例定義了兩個授權策略,一個是要求用戶具有 "Admin" 角色,另一個是要求用戶具有 "User" 角色。你可以根據你的應用程式需求定義不同的策略。

  1. 應用授權策略:在需要授權的地方,你可以通過 Authorize 屬性標記控制器或動作方法,或者在代碼中進行手動授權檢查。

使用 Authorize 屬性

csharp
[Authorize(Policy = "RequireAdminRole")] public class AdminController : Controller { // Actions for Admin only }

手動授權檢查

csharp
public IActionResult MyAction() { if (!User.Identity.IsAuthenticated) { return Challenge(); // Redirects to login page } if (!User.IsInRole("Admin")) { return Forbid(); // Returns 403 Forbidden status } // Action logic for Admin only }
  1. 配置身份驗證方案:授權通常與身份驗證(Authentication)相關聯。確保你在 Startup.cs 中配置了適當的身份驗證方案,例如使用 Cookie、JWT、OpenID Connect 等。

這些是使用 ASP.NET Core 8 中授權的基本步驟。通過這些步驟,你可以有效地管理應用程式中的用戶權限和資源訪問。