【发布时间】:2016-09-11 20:09:47
【问题描述】:
Net Core 策略授权,但对我来说它看起来非常静态。因为在企业应用程序中,经常需要新角色,这需要新策略(据我了解),或者如果您想为特定客户端实施新类型的策略。例如,如果我们正在构建一个由这些策略驱动的 CMS,我们希望每个客户都能够定义自己的。那么这种新的政策基础机制能否更加动态,或者它的想法完全不同?
谢谢:))
【问题讨论】:
-
在问以下问题之前,我和你一样想。 (stackoverflow.com/questions/36445780/…)。但是@Tseng 的回答改变了我的想法。答案表明
policy authorization可以动态使用。看看答案,它可能对您的情况有用。 -
你不应该再使用“角色”(就像之前在 ASP.NET 4.5 / MVC 5 中使用的那样),而是使用声明。角色不是很灵活,每次添加新角色时都需要更改代码。声明是基于您的应用程序功能的特定权限,即“ReadArticle”或“WriteArticle”、“DeleteArticle”、“CreateUser”等。这样您只需添加策略,当您添加新功能时(如管理用户或发布文章的能力)。 “角色只是用户登录时拥有的声明的集合。然后在策略中检查它
-
请记住,以前没有动态策略时,您无法创建动态策略。 IE。如果后端没有处理它的代码(即检查用户年龄的
AgeOver18策略和处理程序),则不能允许用户指定“超过 18 岁”策略。因此,非开发人员或无权访问源代码的人无法创建策略(因为您需要在代码中为该特定策略添加检查)。您无需创建新策略,而是创建一个现有策略/权限集合的角色。
标签: asp.net-core asp.net-core-mvc