繁体   English   中英

如何在请求到达控制器之前验证URL

[英]How can I validate a URL before the request gets to the controller

我们的服务使用ASP.NET Core,在应用程序管道中,我们有几种中间件,这些中间件在StartUp.cs Configure(IApplicationBuilder app)方法中进行Configure(IApplicationBuilder app)

通过这种方法添加中间件: app.UseMiddleware<Type>();

我想验证HttpContext.Request.Path并确保它可以命中控制器之一。 如何在中间件代码中获取可用路由列表(控制器路径),或者还有一种更简单的方法来查看此特定请求路径是否会碰到已注册的控制器之一? 我们使用了xxxxcontroller : ControllerBase[Route("controller/{version}/{id}]属性来注册控制器。

非常感谢。

我建议您看一下Asp.net核心身份,如果我了解您要查找的内容,则需要使用角色来保证对某些路由的访问。

我不知道如何获取所有路由的列表并检查路径是否为有效路由,但是您可以在MVC运行后使用中间件来检查响应状态代码,并且如果状态代码是404,那么您知道它不是不是有效的路线,您可以相应地进行处理。

UseStatusCodePagesWithReExecute扩展方法基本上使用此方法不仅处理404错误,还处理所有错误状态代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM