ASP.NET Core 8 提供了豐富的授權(Authorization)機制,讓你可以有效地管理應用程式中的用戶權限和資源訪問。以下是使用 ASP.NET Core 8 的授權的一般步驟:
- 引用所需的套件:確保你的專案引用了 Microsoft.AspNetCore.Authorization 套件,你可以在專案的 csproj 檔案中加入以下套件參考:
xml<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="8.0.0" />
- 設定授權策略:在 Startup.cs 中的 ConfigureServices 方法中設定授權策略。你可以通過 AddAuthorization 方法來設定:
csharpservices.AddAuthorization(options =>
{
options.AddPolicy("RequireAdminRole", policy => policy.RequireRole("Admin"));
options.AddPolicy("RequireUserRole", policy => policy.RequireRole("User"));
});
上面的示例定義了兩個授權策略,一個是要求用戶具有 "Admin" 角色,另一個是要求用戶具有 "User" 角色。你可以根據你的應用程式需求定義不同的策略。
- 應用授權策略:在需要授權的地方,你可以通過 Authorize 屬性標記控制器或動作方法,或者在代碼中進行手動授權檢查。
使用 Authorize 屬性:
csharp[Authorize(Policy = "RequireAdminRole")]
public class AdminController : Controller
{
// Actions for Admin only
}
手動授權檢查:
csharppublic 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
}
- 配置身份驗證方案:授權通常與身份驗證(Authentication)相關聯。確保你在 Startup.cs 中配置了適當的身份驗證方案,例如使用 Cookie、JWT、OpenID Connect 等。
這些是使用 ASP.NET Core 8 中授權的基本步驟。通過這些步驟,你可以有效地管理應用程式中的用戶權限和資源訪問。