C# 如何检查被调用的操作在ASP.NETCore中是否具有特定属性?

C# 如何检查被调用的操作在ASP.NETCore中是否具有特定属性?,c#,.net,asp.net-mvc,asp.net-core,.net-core,C#,.net,Asp.net Mvc,Asp.net Core,.net Core,我正在尝试在ASP.Net内核中构建我的自定义授权中间件。它检查控制器类中被调用的操作方法是否由[Authorize]属性标记。我仍然没有好的想法,我如何才能实现这一点 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { app.Use((context, next) => { // if (THE CA

我正在尝试在ASP.Net内核中构建我的自定义授权中间件。它检查控制器类中被调用的操作方法是否由[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();     
}

有人能给我一些实现注释条件的提示吗?

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


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

在开发过程的早期,操作还没有确定,所以甚至没有检查属性的操作。@Nkosi,好的,那么通过实现我自己的中间件来实现这一点有什么可能吗?我建议在这里阅读@Nkosi,其实我在问之前刚看完,但是我还没有拿到,对不起。你能给我一些相关的提示吗?那么,当在使用MVC之前调用某个东西时,具有内置标识的MVC如何知道它被标记了[Authorize]属性呢?我很感激任何能帮助我实现这一点的提示。如何使用过滤器检查当前调用的操作是否具有XZY属性?你能发几行代码吗?@MohammedNoureldin看起来太完美了!非常感谢。