繁体   English   中英

在特定控制器asp.net核心中调用动作时运行代码

[英]Run code when action is called in specific controller asp.net core

举例来说,我有一个管理员控制器,并且当用户调用管理员控制器的任何操作时,我想执行其他自定义检查。

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

如果使用控制器访问任何方法时要验证用户,请使用[Authorize]属性装饰控制器。

如果只想限制某些动作,则可以保留控制器不变,而只需使用[Authorize]属性装饰所需的方法。

如果您只想在控制器中保留某些未[Authorize]的方法,请使用[Authorize]属性来装饰控制器,而您希望匿名用户访问的方法将需要使用[AllowAnonymous]属性来装饰。

这会有所帮助吗? 如果您有特定要求,请把它们包括在内。

由于您不要求提供特定的编程示例,因此,我只向您介绍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))]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM