ASP.NET核心WEB API安全的第三方中间件路由?

寻找有关如何进行此操作的建议:

我有一个通过JWT身份验证和用户角色授权保护的asp.net core 2 webapi项目。

我在asp.net webapi中添加了第3方中间件,该中间件公开了指标终结点。

我可以在指标中间件中设置端点路由和端口,但是没有授权选项。

我想确保这些端点与我自己的API端点相同,因此只有某个角色可以访问它们,但不确定如何执行此操作,也许其他自定义中间件会降低发现这些路由并检查JWT的链的下游?


一只斗牛犬
浏览 124回答 1
1回答

蓝山帝景

您有一个正确的想法,下面是一个如何通过端点保护它的示例。public class MyAuthorizeMiddleware{    private readonly RequestDelegate _next;    public MyAuthorizeMiddleware(RequestDelegate next)    {        _next = next;    }    public async Task Invoke(HttpContext context)    {        if (context.Request.Path.StartsWithSegments("/endpoint")            && !context.User.Identity.IsAuthenticated)        {            context.Response.StatusCode = StatusCodes.Status401Unauthorized;            return;        }        await _next.Invoke(context);    }}
打开App,查看更多内容
随时随地看视频慕课网APP