Asp.net mvc 在asp.net web api中插入请求头的最佳方法

Asp.net mvc 在asp.net web api中插入请求头的最佳方法,asp.net-mvc,asp.net-web-api,ninject,Asp.net Mvc,Asp.net Web Api,Ninject,我正在开发一个api,将一个简单的类发布到数据库中,我正在使用asp.NETWebAPI和Ninject。此api的客户端正在使此api成为具有标头的请求 用户名:xx和密码:yy 因此,在每种方法中,我都必须检查用户名和密码是否正确。我知道这不是正确的方法,我可以用BasicAuth。但我必须这样做 我的问题是,我可以将读取请求头的逻辑注入到gloabl变量中,这样我就可以停止自己重新编写 我使用的简单逻辑是: [HttpPost] public HttpResponseMessa

我正在开发一个api,将一个简单的类发布到数据库中,我正在使用asp.NETWebAPI和Ninject。此api的客户端正在使此api成为具有标头的请求

用户名:xx和密码:yy

因此,在每种方法中,我都必须检查用户名和密码是否正确。我知道这不是正确的方法,我可以用BasicAuth。但我必须这样做

我的问题是,我可以将读取请求头的逻辑注入到gloabl变量中,这样我就可以停止自己重新编写

我使用的简单逻辑是:

   [HttpPost]
   public HttpResponseMessage Post(Sale saleRecord)
   {
   var request = HttpContext.Current.Request;
   var username = request.Headers["username"];
   var password = request.Headers["password"];
   if(username=="xx" && password=="yy")
   {//Logic here} 
   }
在Mvc中,我们可以重写OnActionExecuting()方法并检查这些头文件,但在WebAPI中,我不能重写它


这方面的最佳实践是什么?

您也可以在web api中使用MVC中的操作过滤器,解决从请求中读取公共信息和标题信息的问题

我不太熟悉Ninject,但在上面的文章中,它确实展示了如何为动作过滤器执行IoC,我使用Structuremaps,并且在动作过滤器/属性的情况下通过属性注入执行IoC