首页 > 解决方案 > 在特定控制器 asp.net 核心中调用操作时运行代码

问题描述

例如,我有一个管理控制器,我想在用户调用管理控制器的任何操作时执行额外的自定义检查。

当仅对控制器调用任何操作时,如何在控制器类中执行一些代码?

标签: c#asp.net-core.net-core

解决方案


由于您不要求提供特定的编程示例,因此我只会向您推荐Service Filters的 .net 核心文档。

我之前使用这些为登录用户创建了一个活动跟踪器之类的东西,所以说它是一个管理员,我想看看用户多久前执行了一个操作,这个过滤器将检查用户在会话中的最后一个活动在允许访问该方法之前。

这是一个通用示例:

public class MyFilter : ActionFilterAttribute
{
    public MyFilter()
    {
    }

    //After Method execution
    public override void OnActionExecuted(ActionExecutedContext context)
    {
        //Do stuff
    }

    //Before Method execution
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        //Do stuff
    }
}

在启动中:services.AddScoped<MyFilter>();

及以上控制器/动作:[ServiceFilter(typeof(MyFilter))]


推荐阅读