我正在使用ASP.Netcore提供的默认身份,我已经命名了admin的角色,并且还将相关数据插入了Aspnetuserroles表,在我的控制器上,我写了[授权(角色=" admin"(],但是当我尝试访问该控制器时,它仍然没有授权。这是以下代码。
我仔细检查了UserId和Roalid是正确的
从Aspnetusers中选择IDID58005002-D0D4-4DB1-B0BB-5A474CCA8013
从aspnetroles中选择 *ID名称normorizedName concurrencyStampC4A56464-53F7-440C-B904-FBC7389ED00A Admin Admin 080DBB2C-789E-4E-4E28-95FD-6BC73D8B199E
从aspnetuserroles中选择 *USERID REMID58005002-D0D4-4DB1-B0BB-5A474CCA8013 C4A56464-53F7-440C-B904-FBC7389ED00A
[授权(角色=" admin"(] 公共类AdminController:控制器 {
// GET: /<controller>/
public IActionResult Index()
{
return View();
}
}
我可以访问仅授权没有角色的其他控制器,但我对此有问题。
尝试将角色添加到Startup.cs
文件中的服务
public void ConfigureServices(IServiceCollection services)
{
services.AddDefaultIdentity<IdentityUser>()
.AddRoles<IdentityRole>();
}
在这篇文章中,尝试注册 RoleManager<IdentityRole>
喜欢
services.AddDefaultIdentity<IdentityUser>()
.AddRoles<IdentityRole>()
.AddRoleManager<RoleManager<IdentityRole>>()
.AddDefaultUI(UIFramework.Bootstrap4)
.AddEntityFrameworkStores<DeadAliveDbContext>();