asp.net-core – 基于策略的授权可以更加动态吗?
发布时间:2020-12-16 00:13:16 所属栏目:asp.Net 来源:网络整理
导读:Net Core政策授权,但对我来说看起来非常不稳定.因为在企业应用程序中,通常需要新的角色,这些角色需要新策略(据我所知)或者您希望实现特定于某个客户端的新类型的策略.例如,如果我们正在构建一个由这些策略驱动的CMS,我们希望每个客户能够定义他自己的策略.那
Net Core政策授权,但对我来说看起来非常不稳定.因为在企业应用程序中,通常需要新的角色,这些角色需要新策略(据我所知)或者您希望实现特定于某个客户端的新类型的策略.例如,如果我们正在构建一个由这些策略驱动的CMS,我们希望每个客户能够定义他自己的策略.那么这个新的政策基础机制能否更具活力,或者它的想法完全不同?
谢谢 :)) 解决方法
我总是建议人们看看@
least privilege repo,因为它有一些很好的例子,可以用新的ASP.NET核心认证和授权范例采用各种方法.
是的,实际上它比以前基于角色的概念更具动态性.它允许您定义可以由数据驱动的策略. Here是另一个有关此细节的重要资源.例如,您可以指定API入口点受策略保护(例如),该策略可以有一个处理程序,该处理程序可以执行任何需要的操作,即;在上下文中检查当前用户,将声明与数据库中的值进行比较,比较角色,确实是什么.考虑following: 使用策略定义入口点 [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(); } }
它应该与您在auth8和authz中习惯的先前概念非常相似. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用Asp.net Web API时,使用DataContract和DataMember属性有
- 如何在asp.net MVC 5中注销用户?
- iis – 如何查看有多少用户在线?
- asp.net-mvc – asp.net mvc 3复选框列表中的foreach项
- asp.net-mvc – 在浏览器的新选项卡中打开PDF
- 强制ASP.NET文本框以$符号显示货币
- dependency-injection – 如何使用unity注入ApplicationUse
- asp.net中的会话,缓存和配置文件有什么区别
- asp.net-mvc-4 – ASP.NET实体框架可以自动生成数据注释吗?
- ASP.Net OnClick vs Function()处理buttonName.Click
推荐文章
站长推荐
热点阅读