asp.net-core – 基于策略的授权可以更加动态吗?
|
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-mvc – 数据模型需要两个属性之一
- asp.net – 为customvalidator设置errormessage?
- asp.net – 使用xml类型在SQL Server 2005中存储XSLT?
- 使用ASP.NET MVC4 jquery/javascript捆绑
- ASP.NET编译器在更新到5.2.2之后无法加载System.Web.Mvc
- asp.net – Sys.WebForms.PageRequestManagerServerErrorEx
- 用AJAX实现的无刷新的分页实现代码(asp.net)
- 在ASP.NET MVC网站中无法获取详细的错误信息
- asp.net – 在Azure网站上启用gzip压缩
- ASP.NET MVC Project和App_Code文件夹
- ASP.Net Session_Start事件未触发
- asp.net-mvc – .NET MVC MultiSelectList和选定
- asp.net-mvc – enable-migrations错误:项目无法
- ASP.NET身份和移动客户端
- asp.net-mvc – 如果使用HTML内容,我可以写入内联
- asp.net-mvc – 动作命名约定
- asp.net – 将特定文件夹映射到web.config中的Ht
- asp.net-mvc – 不要在JSON中序列化Entity Frame
- asp.net-mvc – ASP.NET MVC自定义授权
- asp.net – Chrome在成功的文件下载(200状态)上显
