寻找有关如何进行此操作的建议:我有一个通过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);
}
}
- 1 回答
- 0 关注
- 118 浏览
添加回答
举报
0/150
提交
取消