Asp.net web api 将基于声明的授权从MVC5中的web api迁移到MVC6

Asp.net web api 将基于声明的授权从MVC5中的web api迁移到MVC6,asp.net-web-api,authorization,asp.net-core-mvc,.net-4.6,Asp.net Web Api,Authorization,Asp.net Core Mvc,.net 4.6,我正在关注这两篇文章,并了解如何将基于声明的身份验证和授权从MVC5迁移到MVC6 在MVC5中,我可以在各自的操作方法上使用ClaimsPrincipalPermission属性,如下所示 [ClaimsPrincipalPermission(SecurityAction.Demand,Operation=“RecordManagement”,Resource=“Edit”)] [HttpPost] 公共IHttpActionResult编辑记录(字符串id) { //编码到 //编辑 返回O

我正在关注这两篇文章,并了解如何将基于声明的身份验证和授权从MVC5迁移到MVC6

在MVC5中,我可以在各自的操作方法上使用
ClaimsPrincipalPermission
属性,如下所示

[ClaimsPrincipalPermission(SecurityAction.Demand,Operation=“RecordManagement”,Resource=“Edit”)]
[HttpPost]
公共IHttpActionResult编辑记录(字符串id)
{
//编码到
//编辑
返回Ok(已编辑:+id);
}
[ClaimsPrincipalPermission(SecurityAction.Demand,Operation=“RecordManagement”,Resource=“Delete”)]
[HttpPost]
公共IHttpActionResult DeleteRecord(字符串id)
{
//编码到
//删除
返回Ok(已删除:+id);
}
然后从数据库查询中构建principle对象,该查询在登录过程中具有
操作
资源
的键值组合 然后使用
context.Principal.HasClaim(action,resource)调用类
MyCustomClaimCheck:ClaimsAuthorizationManager的重写
CheckAccess
方法来验证访问

据我所见,使用MVC6框架似乎无法实现类似的功能。唯一接近的是使用这一行添加策略

services.AddAuthorization(选项=>
{
options.AddPolicy(“EmployeeOnly”,policy=>policy.requirecall(“EmployeeNumber”);
}
但这意味着我会用应用程序中所有可能的策略来扩充该方法。如果我的理解是正确的,这不是一个很好的方法。有没有人找到一个解决方法来使用基于声明的方法,就像在MVC5中一样