在WebAPI项目中通过IoC检索当前OAuth用户标识

时间:2015-02-10 12:28:43

标签: oauth dependency-injection ninject owin identity

我在ASP.NET WebAPI 2应用程序中有一个基于Owin的OAuth 2.0实现。鉴于我设置了对经过验证的身份的正确声明,在我的控制器代码中,我通过this.User属性获取当前经过身份验证的用户。

我需要以这种方式设置Ninject内核,以便在每个请求上实现PerRequestScope对象,该对象将保留当前用户,但它将以可注入的方式提供,而不仅仅是来自控制器的代码。

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

1 个答案:

答案 0 :(得分:0)

好的,找到了。

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

允许任何注入IPrincipal的人获取当前用户名。