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

时间:2016-01-16 00:12:40

标签: c# asp.net-core asp.net-core-mvc

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

1 个答案:

答案 0 :(得分:0)

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

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

这取决于您对索赔值进行建模的方式。如果您的索赔值为,例如,“CRUD”表示用户已为该特定索赔创建,读取,更新和删除,那么您将必须编写自己的要求和处理程序。