为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
一只斗牛犬 2021-05-15 10:13:33
寻找有关如何进行此操作的建议:我有一个通过JWT身份验证和用户角色授权保护的asp.net core 2 webapi项目。我在asp.net webapi中添加了第3方中间件,该中间件公开了指标终结点。我可以在指标中间件中设置端点路由和端口,但是没有授权选项。我想确保这些端点与我自己的API端点相同,因此只有某个角色可以访问它们,但不确定如何执行此操作,也许其他自定义中间件会降低发现这些路由并检查JWT的链的下游?
查看完整描述

1 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

您有一个正确的想法,下面是一个如何通过端点保护它的示例。


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);

    }

}


查看完整回答
反对 回复 2021-05-23
  • 1 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信