【问题标题】:i have created a role for a user in identity, but when i use it says not authorized我已经为身份用户创建了一个角色,但是当我使用它时说未授权
【发布时间】:2019-07-04 15:52:55
【问题描述】:

我正在使用 asp.netcore 提供的默认身份,我创建了一个名为 admin 的角色,并且还在 ASPNetUserRoles 表中插入了相关数据, 在我的控制器上我写了[Authorize(Roles =“Admin”)],但是当我尝试访问该控制器时,它仍然显示未授权。 以下是代码。

我已经仔细检查了用户 ID 和角色 ID 是否正确

从 AspNetUsers 中选择 id ID 58005002-d0d4-4db1-b0bb-5a474cca8013

从 AspNetRoles 中选择 * id 名称 normalizedName ConcurrencyStamp c4a56464-53f7-440c-b904-fbc7389ed00a 管理员 ADMIN 080dbb2c-789e-4e28-95fd-6bc73d8b199e

从 AspNetUserRoles 中选择 * 用户 ID 角色 ID 58005002-d0d4-4db1-b0bb-5a474cca8013 c4a56464-53f7-440c-b904-fbc7389ed00a

[授权(角色=“管理员”)] 公共类 AdminController : 控制器 {

    // GET: /<controller>/
    public IActionResult Index()
    {
        return View();
    }
}

我可以访问其他仅被授权而没有角色的控制器,但我遇到了问题。

【问题讨论】:

    标签: asp.net-core asp.net-identity roles


    【解决方案1】:

    尝试在Startup.cs 文件中为您的服务添加角色

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDefaultIdentity<IdentityUser>()
            .AddRoles<IdentityRole>();
    }
    

    【讨论】:

    • 我已经有了 services.AddDefaultIdentity().AddRoles() .AddEntityFrameworkStores();
    【解决方案2】:

    从此post,尝试注册RoleManager&lt;IdentityRole&gt;点赞

    services.AddDefaultIdentity<IdentityUser>()
       .AddRoles<IdentityRole>()
       .AddRoleManager<RoleManager<IdentityRole>>()
       .AddDefaultUI(UIFramework.Bootstrap4)
       .AddEntityFrameworkStores<DeadAliveDbContext>();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-06
      • 2021-07-15
      • 2020-06-21
      • 2020-05-23
      • 2011-01-20
      • 1970-01-01
      • 2013-02-06
      • 2022-11-20
      相关资源
      最近更新 更多