使当前OAuth用户身份可通过WebAPI项目中的IoC检索

使当前OAuth用户身份可通过WebAPI项目中的IoC检索,oauth,dependency-injection,ninject,owin,identity,Oauth,Dependency Injection,Ninject,Owin,Identity,我在ASP.NET WebAPI 2应用程序中有一个基于Owin的OAuth 2.0实现。假设我将正确的声明设置为已验证的身份,那么在控制器代码中,我可以通过此.user属性获取当前已验证的用户 我需要以这种方式设置Ninject内核,以便在每次请求时,PerRequestScope对象都会实例化,以容纳当前用户,但它将以可注入的方式可用,而不仅仅是从控制器的代码中可用 请协助如何做到这一点。谢谢。好的,找到了 kernel.Bind<IPrincipal>() .ToMetho

我在ASP.NET WebAPI 2应用程序中有一个基于Owin的OAuth 2.0实现。假设我将正确的声明设置为已验证的身份,那么在控制器代码中,我可以通过此.user属性获取当前已验证的用户

我需要以这种方式设置Ninject内核,以便在每次请求时,PerRequestScope对象都会实例化,以容纳当前用户,但它将以可注入的方式可用,而不仅仅是从控制器的代码中可用

请协助如何做到这一点。谢谢。

好的,找到了

kernel.Bind<IPrincipal>()
  .ToMethod(context => HttpContext.Current.User)
  .InRequestScope();

将允许任何人使用IPrincipal获取当前用户名

这是行不通的。对于Web API,您需要使用HttpRequestContext.Principal。但这不是静态属性,除了在操作中,您不能在任何地方访问它。