首页 > 解决方案 > 如何在不在 IdentityHostingStartup 的控制器中创建策略

问题描述

我想在我的控制器中创建策略,而不是在 "IdentityHostingStartup" 中。有没有办法在行动中创建政策?只想在我的管理面板中创建一些策略

轻松启动:

   services.AddAuthorization(x =>
            {
                x.AddPolicy("PolicyAdmin", p => p.RequireRole("Admins"));
                x.AddPolicy("PolicyCustomers", p => p.RequireRole("Customers"));
            });

有什么建议么?:)

标签: c#asp.netidentityrolespolicy

解决方案


如果我理解正确,您想配置策略并以某种方式将它们注入程序中。

实际上,存在这样的东西并且它是开源的。IdentityServer 的创建者提出了PolicyServer

商业版有一个管理面板并允许进行高级配置。虽然免费的开源版本是有限的。但它基本上可以满足您的需求:在每个请求上注入策略。

该代码做了两件事:在不存在的策略上隐藏错误消息(因为这些可能在程序启动后被注入),并通过中间件将策略作为具有值的权限注入。

请看一下源代码。这可能是一个很好的起点。OSS 版本从 json 文件中读取信息,但您可以轻松地将其替换为其他来源,例如数据库。


推荐阅读