我正在编写一个 ASP.NET Core 资源过滤器,并且我想在 OnResourceExecuting 方法中禁用对某些控制器/操作的处理。我在Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext类中找不到任何 api 来获取控制器名称和操作名称。有人有什么想法吗?谢谢!
1 回答
![?](http://img1.sycdn.imooc.com/533e4d00000171e602000200-100-100.jpg)
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
该ResourceExecutingContext包含一个ActionDescriptor属性(文档)。
这是Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptoror的基类Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor。
因此,当您将其转换为ControllerActionDescriptor( docs ) 时,您可以访问ControllerNameandActionName属性。
if(resourceContext.ActionDescriptor is ControllerActionDescriptor controllerDescriptor)
{
var controllerName = controllerDescriptor.ControllerName;
}
- 1 回答
- 0 关注
- 143 浏览
添加回答
举报
0/150
提交
取消