ASP.NET Core MVC如何在Filter中获取ControllerName和ActionName,以及在Action方法上声明的Filter
在ASP.NET Core MVC的Filter中,我们可以通过ActionContext对象获取到许多有用的信息,例如下面的代码在IAuthorizationFilter中,获取了ControllerName和ActionName,以及在Action方法上声明的Filter:
using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Mvc.Filters; namespace AspNetCoreMVCFilterDescriptor.Filters { public class AuthorizationFilterAttribute : Attribute, IAuthorizationFilter { public void OnAuthorization(AuthorizationFilterContext context) { ControllerActionDescriptor? controllerActionDescriptor = context.ActionDescriptor as ControllerActionDescriptor; string? controllerName = controllerActionDescriptor?.ControllerName;//获取ControllerName string? actionName = controllerActionDescriptor?.ActionName;//获取ActionName //获取在Action方法上声明的Filter IList<FilterDescriptor>? filters = controllerActionDescriptor?.FilterDescriptors; foreach (var filterDescriptor in filters!) { Type filterType = filterDescriptor.Filter.GetType(); } } } }
甚至我们还可以获取声明Filter的Controller的Action方法参数值,详情查看这里。
分类:
ASP.NET
, ASP.NET Core
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2020-07-20 C# ValueTask相关文章(链接)
2018-07-20 SQL SERVER中关于OR会导致索引扫描或全表扫描的浅析 (转载)
2016-07-20 HttpHandler和ashx要实现IRequiresSessionState接口才能访问Session信息(转载)