我想知道是否有人对如何动态创建用户组,如何用用户填充这些组,然后使用授权逻辑基于组所有权来限制对视图的访问提出建议,这也是在运行时决定的。很抱歉,这个问题的范围很广,但是尽管我确实在台式机上使用.NET有相当多的经验,但是在.NET Normal / Core MVC Web框架方面却经验很少。
规格概述
运行时所需的授权任务
答案 0 :(得分:1)
我认为您需要建立有关应用程序需求的更多信息。 group
和dynamic
可能有很多含义。
在auth的世界中,根据我的经验,组用于数据安全性甚至行级安全性。因此,这里需要更多信息。但是它是抽象的,每个应用程序都可以决定该术语在代码中的真正含义。
如果您想还原视图,我建议您使用策略,因为它们具有运行时功能,您可以将其存储在数据库中并进行常规使用。
如何分配它们?这真的取决于您的应用程序...有很多用例。
下面是如何手动限制的示例:
public class ContentController : Controller
{
private IAuthorizationService _authorizationService;
public ContentController (IAuthorizationService authorizationService)
{
_authorizationService = authorizationService;
}
public async Task<IActionResult> Save(Article article)
{ var allowed = await _authorizationService.AuthorizeAsync(User, "ContentsEditor"));
if (!allowed)
throw new SomeAuthException();
// ok, goot to go....
...
}
}
您有更多的“基础设施”实现方法,但这只是一个示例
请阅读此处以获取有关使用政策的最佳做法:https://www.jerriepelser.com/blog/creating-dynamic-authorization-policies-aspnet-core/
答案 1 :(得分:0)