我正在使用ASP.NET核心默认网站模板,并将身份验证 Select 为"个人用户帐户".如何创建角色并将其分配给用户,以便使用控制器中的角色筛选访问权限?
我正在使用ASP.NET核心默认网站模板,并将身份验证 Select 为"个人用户帐户".如何创建角色并将其分配给用户,以便使用控制器中的角色筛选访问权限?
我在Accounts
控制器中创建了一个操作,它调用一个函数来创建角色,并将Admin
角色分配给默认用户.(您可能应该删除生产中的默认用户):
private async Task CreateRolesandUsers()
{
bool x = await _roleManager.RoleExistsAsync("Admin");
if (!x)
{
// first we create Admin rool
var role = new IdentityRole();
role.Name = "Admin";
await _roleManager.CreateAsync(role);
//Here we create a Admin super user who will maintain the website
var user = new ApplicationUser();
user.UserName = "default";
user.Email = "default@default.com";
string userPWD = "somepassword";
IdentityResult chkUser = await _userManager.CreateAsync(user, userPWD);
//Add default User to Role Admin
if (chkUser.Succeeded)
{
var result1 = await _userManager.AddToRoleAsync(user, "Admin");
}
}
// creating Creating Manager role
x = await _roleManager.RoleExistsAsync("Manager");
if (!x)
{
var role = new IdentityRole();
role.Name = "Manager";
await _roleManager.CreateAsync(role);
}
// creating Creating Employee role
x = await _roleManager.RoleExistsAsync("Employee");
if (!x)
{
var role = new IdentityRole();
role.Name = "Employee";
await _roleManager.CreateAsync(role);
}
}
之后,您可以创建一个控制器来管理用户的角色.