我在身份中为用户创建了一个角色,但是当我使用它时,说没有授权



我正在使用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>();

相关内容

  • 没有找到相关文章