首页 > 编程语言 >ASP.NET Core MVC如何在Filter中获取ControllerName和ActionName,以及在Action方法上声明的Filter

ASP.NET Core MVC如何在Filter中获取ControllerName和ActionName,以及在Action方法上声明的Filter

时间:2024-07-20 16:08:23浏览次数:12  
标签:Core ASP ActionName controllerActionDescriptor Filter 获取 ControllerName Action

在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方法参数值,详情查看这里

标签:Core,ASP,ActionName,controllerActionDescriptor,Filter,获取,ControllerName,Action
From: https://www.cnblogs.com/OpenCoder/p/18313263

相关文章

  • 将 .NET Framework 应用程序更新到 .NET Core。这是一个 VB.NET Windows 服务
    我有一个用VB.NET编写的有点旧的.NET4.7Windows服务。我想将其升级到.NETCore8.0,但升级向导似乎不想处理大量工作如果.NETCore支持VB.NETWindows服务,我找不到任何真正的内容....我可以找到大量创建控制台应用程序等的C#示例,但没有找到VB.NET的任何内......
  • [rCore学习笔记 016]实现应用程序
    写在前面本随笔是非常菜的菜鸡写的。如有问题请及时提出。可以联系:[email protected]:https://github.com/WindDevil(目前啥也没有设计方法了解了特权级机制,实际上如果要设计一个应用程序就需要保证它符合U模式的要求,不要去访问S模式下的功能,那么其实现要点是:应......
  • Spring Core
    Author:ACatSmilingSince:2024-07-19IoCIoC:InversionofControl,控制反转。是面向对象编程中的一种设计原则/设计思想,旨在降低代码之间的耦合度,提高系统的灵活性和可维护性。其核心思想是通过反转对象的控制权,将对象创建与对象之间的调用过程交给专门的容器进行管理(如Spring......
  • 克隆的TrinityCore服务器网速慢卡顿问题的解决(未解决)
    一台TrinityCore服务器,采用的是备份克隆安装的方式,在FreeBSDbhyve中安装Ubuntu,安装细节见如下两篇文档:尝试在FreeBSD的jail、bhyve里安装TrinityCore-CSDN博客备份和镜像TrinityCore_魔兽世界updatingauthdatabase...dbupdater:thegive-CSDN博客这台服务器的问题就......
  • 论如何直接用EF Core实现创建更新时间、用户审计,自动化乐观并发、软删除和树形查询(下)
    前言数据库并发,数据审计和软删除一直是数据持久化方面的经典问题。早些时候,这些工作需要手写复杂的SQL或者通过存储过程和触发器实现。手写复杂SQL对软件可维护性构成了相当大的挑战,随着SQL字数的变多,用到的嵌套和复杂语法增加,可读性和可维护性的难度是几何级暴涨。因此如何在实......
  • 【.NET全栈】ASP.NET开发Web应用——站点导航技术
    文章目录前言一、站点地图1、定义站点地图文件2、使用SiteMapPath控件3、SiteMap类4、URL地址映射二、TreeView控件1、使用TreeView控件2、以编程的方式添加节点3、使用TreeView控件导航4、绑定到XML文件5、按需加载节点6、带复选框的TreeView控件三、Menu控件1、使用M......
  • 【.NET全栈】ASP.NET开发Web应用——AJAX开发技术
    文章目录前言一、ASP.NETAJAX基础1、AJAX技术简介2、ASP.NETAJAX技术架构二、ASP.NETAJAX服务器端扩展1、声明ScriptManager控件2、使用ScriptManager分发自定义脚本3、在ScriptManager中注册Web服务4、处理ScriptManager中的异常5、编程控制ScriptManager控件6、使......
  • gateway filter
    默认filter默认的有38个,分为5组:请求头、请求参数(查询字符串)、响应头、前缀和路径、其他,作用都不是很大,挑几个举个例#请求和响应filter-id:test_my_consumeruri:http://localhost:8082predicates:-Path=/feign/**filters:-AddRequestHeader=custom......
  • Entity Framework Core
    我想变成你,见你所见,爱你所爱。--zhuEFCoreORM定义:(ObjectRelationalMapping)让开发者用对象操作的形式操作关系数据库。ORM框架:EFCore,Dapper,sqlSugar,FreeSql等。EFCore与其他ORM比较1、EntityFrameworkCore(EFCore)是微软官方的ORM框架。优点:功能强大、官......
  • 论如何直接用EF Core实现创建更新时间、用户审计,自动化乐观并发、软删除和树形查询(中)
    前言数据库并发,数据审计和软删除一直是数据持久化方面的经典问题。早些时候,这些工作需要手写复杂的SQL或者通过存储过程和触发器实现。手写复杂SQL对软件可维护性构成了相当大的挑战,随着SQL字数的变多,用到的嵌套和复杂语法增加,可读性和可维护性的难度是几何级暴涨。因此如何在实......