C# Asp.net核心WEB API安全第三方中间件路由?
寻找关于如何进行此操作的建议: 我有一个asp.net core 2 webapi项目,通过JWT身份验证和用户角色授权进行保护 我在我的asp.net webapi中添加了一个第三方中间件,用于公开度量端点 我可以在metrics中间件中设置端点路由和端口,但没有授权选项C# Asp.net核心WEB API安全第三方中间件路由?,c#,asp.net-core,asp.net-core-webapi,C#,Asp.net Core,Asp.net Core Webapi,寻找关于如何进行此操作的建议: 我有一个asp.net core 2 webapi项目,通过JWT身份验证和用户角色授权进行保护 我在我的asp.net webapi中添加了一个第三方中间件,用于公开度量端点 我可以在metrics中间件中设置端点路由和端口,但没有授权选项 我希望将这些端点的安全保护与我自己的API端点相同,这样只有特定角色才能访问它们,但不确定如何执行此操作,可能是链下游的其他自定义中间件发现这些路由并检查JWT?您的想法正确,下面是一个示例,说明了如何通过端点来确保安全 p
我希望将这些端点的安全保护与我自己的API端点相同,这样只有特定角色才能访问它们,但不确定如何执行此操作,可能是链下游的其他自定义中间件发现这些路由并检查JWT?您的想法正确,下面是一个示例,说明了如何通过端点来确保安全
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);
}
}