如何确定特定路由/路径是否需要授权/身份验证?

时间:2017-07-31 10:57:23

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

我正在编写一个Middlere,我希望它不会在路径不需要身份验证时运行。是否有可能以简单的方式在ASP.NET Core中知道这一点? (无需通过内省读取控制器功能的属性)

感谢。

1 个答案:

答案 0 :(得分:0)

在中间件的公共Task Invoke方法中,您可以随时检查是否进入管道中的下一级别。

例如,

public Task Invoke(HttpContext context)
{

    // If the request path doesn't match, skip
    if (!context.Request.Path.Equals(_options.Path, StringComparison.Ordinal))
    {
        return _next(context);
    }
}

return_next(context)只是将这个中间件完全跳过到管道的下一个阶段。您可以根据您要执行的操作将自定义逻辑放在此处。