我正在尝试使用 dotNet core 3.1 集中基于角色的用户访问控制,但无法弄清楚。这是我想要实现的目标,
- 不要在每个单独的控制器类中使用 [Authorize] 或 [Authorize(Policy="myRolePolicy"]。
- 在 Startup.cs ConfigureServices 中,定义 2 个策略,第一个是所有登录用户的“默认”,第二个是 policy.RequireRole(“admin”)。
- 在 Startup.cs Configure 中,app.UseEndpoints 有两个端点。MapControllerRoute 具有不同的模式,一个是 RequireAuthorization("default"),第二个是 RequireAuthorization("myRolePolicy")。
在运行时,我可以在日志中看到路径与基于角色的模式匹配,但从未强制执行 require-role。我真正想做的是在 Startup.cs 中控制所有基于角色的访问,因此我可以使用配置来启用/禁用此功能,而无需更改任何代码。
有什么理由吗?而且,这可能吗?谢谢!