MVC3 + Ninject:注入User IPrincipal的正确方法是什么?

Sha*_*awn 8 dependency-injection ninject iprincipal asp.net-mvc-3

我已经看到以下两个用于注入User IPrincipal的示例:

方法1:

kernel.Bind<IPrincipal>()
   .ToMethod(context => context.Kernel.Get<RequestContext>().HttpContext.User)
   .InRequestScope();
Run Code Online (Sandbox Code Playgroud)

方法2:

kernel.Bind<IPrincipal>()
  .ToMethod(context => HttpContext.Current.User)
  .InRequestScope();
Run Code Online (Sandbox Code Playgroud)

两者有什么不同吗?是首选吗?

Jef*_*ddy 7

这两种方法是相同的.两者都将返回当前HTTP请求的HttpContext对象.