我正在使用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();
}
}
我可以访问仅被授权且没有任何角色的其他控制器,但是我对此有疑问。
答案 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>();