我的配置中有以下设置:
routes.MapHttpRoute("NoAuthRequiredApi", "api/auth/", new { id = RouteParameter.Optional } );
routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}", new { id = RouteParameter.Optional }, null, new WebApiAuthenticationHandler());
如果我在 api / auth 上向网址发布任何内容,则邮件处理程序仍会运行并检查Auth-Token标头。这有什么原因吗?我是否应该在WebApi路由的配置中进行更改?在向auth控制器发出请求时,我显然不希望在标头上有任何auth令牌,因为此时我正在尝试检索令牌以便在其他控制器上使用。
答案 0 :(得分:2)
您的最上面的路线永远不会匹配,因为没有迹象表明需要哪个控制器。默认添加控制器名称。 (如果不需要,请删除ID选项。)
所以:
routes.MapHttpRoute(
name: "NoAuthRequiredApi",
routeTemplate: "api/auth/",
defaults: new { Controller = "Auth" }
);