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

C# 如何在请求到达控制器之前验证URL,c#,asp.net-mvc,asp.net-core,asp.net-core-mvc,C#,Asp.net Mvc,Asp.net Core,Asp.net Core Mvc,我们的服务使用ASP.NET核心,在应用程序管道中,我们有几个中间件,它们在StartUp.csConfigure(IAApplicationBuilder app)方法中配置 通过此方法添加中间件: app.UseMiddleware() 我想验证HttpContext.Request.Path,并确保它可以命中其中一个控制器。我如何在中间件代码中获得可用路由(控制器路径)的列表,或者是否有更简单的方法来查看此特定请求路径是否会命中其中一个已注册的控制器?我们使用xxxxcontroller:

我们的服务使用ASP.NET核心,在应用程序管道中,我们有几个中间件,它们在StartUp.cs
Configure(IAApplicationBuilder app)
方法中配置

通过此方法添加中间件:
app.UseMiddleware()

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


非常感谢。

我建议你看看Asp.net核心身份,如果我了解你在寻找什么,你需要使用角色来保证访问某些路由。

我建议你看看Asp.net核心身份,如果我了解你在寻找什么,你需要使用角色来保证访问某些路由。

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


UseStatusCodePagesWithreeExecute
扩展方法基本上使用这种方法不仅处理404个错误,而且处理所有错误状态代码。

我不知道如何获取所有路由的列表并检查路径是否为有效路由,但您可以使用中间件在MVC运行后检查响应状态代码,以及状态是否为code是一个404,然后你知道它不是一个有效的路由,你可以相应地处理它


UseStatusCodePageSwithreeExecute
扩展方法基本上使用这种方法不仅处理404个错误,而且处理所有错误状态代码。

我知道一些关于身份、用户声明的内容,实际上我并不认为这与身份有关。我知道一些关于身份、用户声明的内容,我并不认为这是一个错误关于身份。我想你需要一个与
中间件
类似的模块,就像这样,我想你需要一个与
中间件
类似的模块,就像这样