Our service uses ASP.NET Core and in the application pipeline, we have several middlewares which are configured in StartUp.cs Configure(IApplicationBuilder app)
method.
The middlewares are added by this method: app.UseMiddleware<Type>();
I would like to validate the HttpContext.Request.Path
and make sure it can hit one of the controllers. How can I get the list of available routes (controller path) in the middleware code or is there even a simpler way to see if this certain request path will hit one of the registered controller? We used xxxxcontroller : ControllerBase
and a [Route("controller/{version}/{id}]
attribute to register the controller.
Thanks a lot.
我建议您看一下Asp.net核心身份,如果我了解您要查找的内容,则需要使用角色来保证对某些路由的访问。
I don't know how to get a list of all routes and check that the path is for a valid route but you can use middleware to check the response status code after MVC runs and if the status code is a 404 then you know it wasn't a valid route and you can handle it accordingly.
The UseStatusCodePagesWithReExecute
extension method basically uses this approach to handle not only 404 errors but all error status codes.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.