c# - 如何在不在 IdentityHostingStartup 的控制器中创建策略
问题描述
我想在我的控制器中创建策略,而不是在 "IdentityHostingStartup" 中。有没有办法在行动中创建政策?只想在我的管理面板中创建一些策略
轻松启动:
services.AddAuthorization(x =>
{
x.AddPolicy("PolicyAdmin", p => p.RequireRole("Admins"));
x.AddPolicy("PolicyCustomers", p => p.RequireRole("Customers"));
});
有什么建议么?:)
解决方案
如果我理解正确,您想配置策略并以某种方式将它们注入程序中。
实际上,存在这样的东西并且它是开源的。IdentityServer 的创建者提出了PolicyServer。
商业版有一个管理面板并允许进行高级配置。虽然免费的开源版本是有限的。但它基本上可以满足您的需求:在每个请求上注入策略。
该代码做了两件事:在不存在的策略上隐藏错误消息(因为这些可能在程序启动后被注入),并通过中间件将策略作为具有值的权限注入。
请看一下源代码。这可能是一个很好的起点。OSS 版本从 json 文件中读取信息,但您可以轻松地将其替换为其他来源,例如数据库。
推荐阅读
- linux - 如何将相同的 UART 用于 modbus 而不是调试端口
- c - 保存来自一个程序的输入
- c# - 在 MVC 5 中提交下拉列表表单时出现错误值不能为空。参数名称:items
- crash - 图片保存在服务器崩溃中
- android - Android IME 建议视图与应用程序重叠
- vim - 如何在 Vim 中将点方法调用更改为字典键访问
- jenkins - 如何使用 jenkins 管道自动更新(或创建)Rundeck 作业
- javascript - 如果首先访问页面,如何操作路由?
- javascript - 将变量打印到 JSON NodeJS
- php - 如何使用正则表达式拆分文件扩展名