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

Is there a way to do fine grained access control in ASPNET 5 MVC 6

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

您可以编写需要声明及其价值的保单;

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

这取决于您如何为声明值建模。如果您有一个声明值,例如,"CRUD" 表示用户已创建、读取、更新和删除该特定声明,那么您将不得不编写自己的要求和处理程序。