WebAPI2 CORS库未按预期工作

时间:2015-11-26 08:10:54

标签: cors asp.net-web-api2

我们正在使用WebAPi2 cors lib Microsoft.AspNet.WebApi.Cors.5.2.3来启用跨域请求。 lib inturn使用消息处理程序来启用发出适当的响应,cors lib在webapiconfig.cs文件的全局级别附加

   var enableCorsAttribute = new EnableCorsAttribute("*", "*", "*");`enter code

我们还使用自定义消息处理程序进行令牌验证。 令牌验证处理程序也附加在其下的全局

  config.MessageHandlers.Add(new TokenValidationHandler());

混淆是哪个消息处理程序执行第一个cors处理程序或验证处理程序,根据文档首先附加的处理程序将被调用 http://www.asp.net/web-api/overview/advanced/http-message-handlers

但是首先调用自定义处理程序,也尝试更改顺序但是没有使用顺序执行是相同的,因此对于选项请求我绕过了对cors处理程序的请求

//Request is options bypass it
          if (request.Method.Method.ToLower() == "options")
        {
            return base.SendAsync(request, cancellationToken);
        }

cors消息处理程序理想情况下应该立即为选项http方法类型发送响应但是请求到达控制器级别,我们在控制器构造函数中设置Request上下文对象,它从当前线程读取声明但是选项方法它是对象null值因为没有选项方法的索赔,因此在调试模式下抛出预期。

任何帮助都将不胜感激。

提前致谢。

0 个答案:

没有答案