ASP.NET Core 项目 MVC 权限控制是 web 开发中非常重要的一个方面,它可以控制用户访问不同的页面或执行不同的操作,确保应用程序的安全性。在 ASP.NET Core MVC 中,权限控制可以通过分配角色和授权实现。本文将介绍如何在 ASP.NET Core 项目中实现基于角色的权限控制。
一、添加 Identity 类库
为实现权限控制,需要在 ASP.NET Core 项目中添加 Microsoft.AspNetCore.Identity 包。可以通过 PMC 中输入以下命令来添加这个类库:
Install-Package Microsoft.AspNetCore.Identity.EntityFrameworkCore
二、创建 Identity 数据库
添加完 Microsoft.AspNetCore.Identity 包后,需要创建 Identity 数据库。
Add-Migration CreateIdentitySchema
Update-Database
三、添加用户和角色
在 ASP.NET Core 项目中创建用户和角色非常容易。运行以下代码完成用户和角色的创建。
var userManager = app.ApplicationServices.GetService<UserManager<IdentityUser>>();
var roleManager = app.ApplicationServices.GetService<RoleManager<IdentityRole>>();
// 创建管理员角色
var adminRole = await roleManager.CreateAsync(new IdentityRole("admin"));
// 创建管理员账户
var adminUser = new IdentityUser("admin")
{
Email = "admin@test.com",
EmailConfirmed = true
};
await userManager.CreateAsync(adminUser, "Pass@word1");
// 将管理员角色赋给管理员账户
await userManager.AddToRoleAsync(adminUser, "admin");
四、实现授权
在 ASP.NET Core 项目中使用授权非常容易,可以通过控制器或操作的方式添加授权。以下是示例:
[Authorize(Roles = "admin")]
public IActionResult AdminOnlyPage()
{
return View();
}
或者,也可以通过 Policy 来进行授权:
services.AddAuthorization(options =>
{
options.AddPolicy("RequireAdmin",
policy => policy.RequireRole("admin"));
});
然后在控制器或操作中使用:
[Authorize(Policy = "RequireAdmin")]
public IActionResult AdminOnlyPage()
{
return View();
}
通过以上示例,可以实现基于角色的 ASP.NET Core 项目 MVC 权限控制。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net core项目mvc权限控制:分配权限 - Python技术站