如何检查被调用的动作在ASP.Net Core中是否具有特定属性?

时间:2017-11-07 02:02:22

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

我正在尝试在middle ware中构建自定义授权ASP.Net Core。其中检查被调用action(控制器类中的方法)是否由[Authorize]属性标记。我仍然没有好主意如何实现它。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.Use((context, next) =>
    {
        // if (THE CALLED ACTION HAS [Authorize] attribute)
        //     DO SOMETHING...
        return next();
    });

    app.UseMvcWithDefaultRoute();     
}

有人可以给我任何暗示来实施评论条件吗?

1 个答案:

答案 0 :(得分:1)

通常,如果需要检查操作是否具有属性,则需要使用操作过滤器,而不是中间件。

为什么呢?原因操作方法是MVC中间件的一部分,因此动作过滤器是。虽然标准中间件不了解MVC概念。