web api - 消息处理程序属性路由
Posted
技术标签:
【中文标题】web api - 消息处理程序属性路由【英文标题】:web api - message handler attribute routing 【发布时间】:2014-12-26 18:47:06 【问题描述】:有谁知道消息处理程序是否可以与 Web API 2.x 中的属性路由同时工作?我有一个自定义消息处理程序可以使用常规路由工作,然后在添加属性路由后,它停止工作。我不确定它是否不受支持,或者我是否配置错误。非常感谢任何帮助。
1) 属性路由之前
--- WebApiConfig.cs code snippet (simplified)----
config.Routes.MapHttpRoute(
name:"DefaultApi",
routeTemplate: "api/controller",
defaults: null,
constraints: null,
handler: my-message-handler-object
);
--- MyController.cs code snippet (simplified)----
public class MyController : ApiController
[HttpGet]
public IHttpActionResult CheckInServices(...)
...
2) 属性路由后
--- WebApiConfig.cs code snippet (simplified)----
public static void Register(HttpConfiguration config)
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name:"DefaultApi",
routeTemplate:"api/vendor",
defaults: new controller = "Users" ,
constraints: null,
handler: my-message-handler-object
);
--- MyController.cs code snippet (simplified)----
[RoutePrefix("api/vendor/vendorID:long/service")]
public class MyController : ApiController
[HttpPost]
[Route("serviceID:long")]
public IHttpActionResult CheckInServices(...)
...
谢谢,
科迪
【问题讨论】:
【参考方案1】:全局消息处理程序将起作用 - 只需在启动时进行设置。
public static class WebApiConfig
public static void Register(HttpConfiguration config)
config.MessageHandlers.Add(new YourAuthenticationHandler());
我不确定每个路由消息处理程序是否与属性路由一起使用。
【讨论】:
以上是关于web api - 消息处理程序属性路由的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core Web API - JWT 消息处理程序 - 没有注册类型错误
Web API 源码剖析之默认配置(HttpConfiguration)
ASP.NET 4.5 Web API 2.0,JWT 消息处理程序将状态 0 返回到 Angular 7 HTTP 拦截器