gpt4 book ai didi

asp.net-core - 基于策略的授权可以更动态吗?

转载 作者:行者123 更新时间:2023-12-03 20:03:13 26 4
gpt4 key购买 nike

Net Core 策略授权,但对我来说它看起来非常静态。因为在企业应用程序中,经常需要新角色,这将需要新策略(据我所知),或者如果您想为某些客户端实现特定类型的策略。例如,如果我们正在构建一个由这些策略驱动的 CMS,我们将希望每个客户端都能够定义他自己的。那么这个新的政策基础机制是否可以更加动态,或者它的想法完全不同?

谢谢 :))

最佳答案

我总是建议人们看看@least privilege repo因为它有一些很好的例子,说明了人们可以使用新的 采取的所有各种方法。 ASP.NET 核心 身份验证和授权范例。

Can this new policy base mechanism be more dynamic?



是的,事实上它比以前基于角色的概念更具动态性。它允许您定义可以由数据驱动的策略。 Here是与此相关的详细信息的另一个重要资源。例如,您可以指定 API 入口点受策略保护(例如),并且该策略可以有一个处理程序,并且该处理程序可以执行它需要的任何操作,即;检查电流 User在上下文中,将声明与数据库中的值进行比较,比较角色,任何真正的东西。考虑 following :

使用 Policy 定义入口点
[Authorize(Policy = "DataDrivenExample")]
public IActionResult GetFooBar()
{
// Omitted for brevity...
}

使用添加策略的选项添加授权。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddAuthorization(options =>
{
options.AddPolicy("DataDrivenExample",
policy =>
policy.Requirements.Add(new DataDrivenRequirement()));
});
services.AddSingleton<IAuthorizationHandler, DataDrivenHandler>();
}

然后定义处理程序。
public class MinimumAgeHandler : AuthorizationHandler<DataDrivenRequirement>
{
protected override void Handle(AuthorizationContext context,
DataDrivenRequirement requirement)
{
// Do anything here, interact with DB, User, claims, Roles, etc.
// As long as you set either:
// context.Succeed(requirement);
// context.Fail();
}
}

Is the idea entirely different?



它应该与您习惯使用 auth8 和 authz 的先前概念非常相似。

关于asp.net-core - 基于策略的授权可以更动态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37247094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com