有没有办法在ASPNET 5 MVC 6中进行细粒度访问控制

本文关键字:细粒度 访问控制 MVC ASPNET 有没有 | 更新日期: 2023-09-27 18:30:39

ASPNET 5 中的新授权属性似乎涵盖了简单的应用程序,课程访问控制很好。但是,如何将其与具有 CRUD 操作的 10+ 控制器一起使用呢?为所有调用添加策略是否正确,因为无法将所需的声明传递给策略?似乎此列表无法管理和混乱配置服务方法。

有没有办法在ASPNET 5 MVC 6中进行细粒度访问控制

您可以编写需要声明及其值的策略;

services.AddAuthorization(options =>
{
    options.AddPolicy("RequireRead", 
                      policy => policy.RequireClaim("DocumentPermission", "Read"));
}

这取决于如何对声明值进行建模。如果你的声明值(例如"CRUD")指示用户已创建、读取、更新和删除该特定声明,则必须编写自己的要求和处理程序。