asp.net-web-api - web api - 消息处理程序属性路由

标签 asp.net-web-api attributerouting message-handlers

有谁知道消息处理程序是否可以与 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(...)
         {
           ...
         }
    }

谢谢,

科迪

最佳答案

全局消息处理程序将起作用 - 只需在启动时进行设置。

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.MessageHandlers.Add(new YourAuthenticationHandler());
    }
}

我不确定每个路由消息处理程序是否适用于属性路由。

关于asp.net-web-api - web api - 消息处理程序属性路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26657886/

相关文章:

c# - C# .NET 中 POST 的属性路由

.net - 如何使用主干单页应用程序在 MVC4 中测试 AntiForgeryToken

asp.net-mvc - 使用 GET 的 MVC AttributeRouting - 返回 405 - 方法不允许

asp.net - 消息处理程序和 Http 模块?

c# - 更改 WebAPI 中的默认路由

c# - 使用 MySQL 创建 edmx "The given key was not present in the dictionary"

asp.net-mvc - MVC Web API,获取子项

telegram - pyTelegramBotAPI 消息处理程序看不到照片

c# - Sitecore:通过菜单项命令/消息传递语言信息

c# - .NET WebApi 不一致的日期时间类型 POST 与 GET