为了账号安全,请及时绑定邮箱和手机立即绑定

如何确定 IResourceFilter 中的 Controller 名称和 Action 名称?

如何确定 IResourceFilter 中的 Controller 名称和 Action 名称?

C#
慕桂英4014372 2022-01-09 10:27:34
我正在编写一个 ASP.NET Core 资源过滤器,并且我想在 OnResourceExecuting 方法中禁用对某些控制器/操作的处理。我在Microsoft.AspNetCore.Mvc.Filters.ResourceExecutingContext类中找不到任何 api 来获取控制器名称和操作名称。有人有什么想法吗?谢谢!
查看完整描述

1 回答

?
海绵宝宝撒

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;

}


查看完整回答
反对 回复 2022-01-09
  • 1 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信