我已经为身份用户创建了一个角色,但是当我使用该角色时表示未授权

时间:2019-07-03 08:25:45

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

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

我仔细检查了userid和roleid是否正确

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

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

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

[Authorize(Roles =“ Admin”)]     公共类AdminController:控制器     {

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

我可以访问仅被授权且没有任何角色的其他控制器,但是我对此有疑问。

2 个答案:

答案 0 :(得分:0)

尝试在import mysql.connector`enter code here` conn = mysql.connector.connect(user='root', password='1234', host='localhost', database='neworder') x = conn.cursor() x.execute("SELECT * FROM ords") x.execute (" INSERT INTO ords VALUES ('%s', '%s' '%s')" %'f' %'test' %'try' ) conn.commit() conn.close() 文件中为服务添加角色

Startup.cs

答案 1 :(得分:0)

从此post,尝试像这样注册RoleManager<IdentityRole>

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