如何使用过滤器限制Webapi控制器方法调用

时间:2019-01-27 09:11:12

标签: asp.net-web-api

我有几个控制器,每个控制器都有代表 REST端点。

我想根据条件调用这些操作

是否可以使用具有属性的过滤器而不在所有操作中都使用(if..else)语句来实现它?

如果是的话,能否请您提供做事的概要?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果它是asp.net核心,请检查此链接https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/filters?view=aspnetcore-2.2

您可以这样做

public class SampleAsyncActionFilter : IAsyncActionFilter
{
    public async Task OnActionExecutionAsync(
        ActionExecutingContext context,
        ActionExecutionDelegate next)
    {
        if (...)
        {
            // do something before the action executes
            var resultContext = await next();
            // do something after the action executes; resultContext.Result will be set
        }
    }
}