我正在开发一个api,它将一个简单的类发布到数据库,我正在使用asp.net web api和Ninject。这个api的客户端正在使这个api成为带头文件的请求
username: xx and password: yy
因此,我必须检查用户名和密码是否正确。我知道这不是真正的方法,我可以使用BasicAuth。 OAuth exc。但我必须这样做。
我的问题是,我可以将读取请求标头的逻辑注入一个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()
方法并检查这些标题,但在web api中我无法覆盖它。
最佳做法是什么?
答案 0 :(得分:1)
您也可以在web api中执行类似MVC的动作过滤器,并解决从请求中读取常用信息和标题信息。
我对Ninject不是很熟悉,但在上面的文章中,它确实展示了如何使用IoC for Action过滤器,我使用了结构图,并且在动作过滤器/属性的情况下通过属性注入。