【问题标题】:Route Aliases in ASP.NET Web API 2ASP.NET Web API 2 中的路由别名
【发布时间】:2015-06-30 20:28:39
【问题描述】:

我有一个 Web API,允许用户访问/操作“属于”其他用户的资源。它包含许多类似这样的路由:

/users/{userId}/resource

我想要一组代表当前经过身份验证的用户执行相同操作的相应路由:

/resource

理想情况下,我希望在不将控制器中的操作数量增加一倍的情况下让第二组路由正常工作,但我正在努力寻找合适的钩子。理想情况下,我想添加一个拦截每个请求的 MessageHandler (或其他东西),检查它是否匹配路由,如果不匹配,则将“users/”+经过身份验证的用户的 ID 添加到路由并再次检查.实现这一目标的最佳方法是什么?

一个约束:我正在使用 属性路由 来实现第一组路由,并且理想情况下希望在不牺牲它的情况下完成它。

【问题讨论】:

    标签: c# asp.net asp.net-web-api asp.net-web-api-routing


    【解决方案1】:

    钩子是动作选择器,你可以在这里看到:Routing and Action Selection in ASP.NET Web API

    您可以实现自己的操作选择器来实现您想要的。以下是有关如何执行此操作的示例:Magical Web API action selector。来自同一页面:

    我们将创建一个实现 IActionSelector 的类,因为这将允许我们插入 GlobalConfiguration.Configuration.Services 下 Web API 提供的挂钩。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多