我正在编写一个 ASP.NET Core 资源过滤器,我想在 OnResourceExecuting 方法中禁用对某些 Controller /操作的处理。
我在 Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext 中找不到任何获取 Controller 名称和操作名称的 API类。
有人有什么想法吗?谢谢!
最佳答案
ResourceExecutingContext
包含一个 ActionDescriptor
属性 ( docs )。
这是 Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
或 Microsoft.AspNetCore.Mvc.RazorPages.PageActionDescriptor
的基类。
因此,当您将其转换为 ControllerActionDescriptor
( docs ) 时,您可以访问 ControllerName
和 ActionName
属性。
if(resourceContext.ActionDescriptor is ControllerActionDescriptor controllerDescriptor)
{
var controllerName = controllerDescriptor.ControllerName;
}
关于c# - 如何确定 IResourceFilter 中的 Controller 名称和 Action 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52229238/