我希望我的Web API应用程序通过ASP.NET Identity登录用户。
在我的AuthController
中,执行以下操作://...getting claimsIdentity etc...
_authenticationManager.SignIn(claimsIdentity)
其中_authenticationManager
是IAuthenticationManager
的实例
我正在使用Unity,因此IAuthenticationManager
通过以下方式注册:container.RegisterType<IAuthenticationManager>(new InjectionFactory(o => HttpContext.Current.GetOwinContext().Authentication));
这适用于我在IIS中托管的应用。但是我也有一些在自托管环境上运行的集成测试,问题是IAuthenticationManager
解析失败,因为HttpContext.Current
为null。
有什么方法可以注册IAuthenticationManager
实现并在自托管和IIS中使用它?我也确实希望能够通过我的控制器的构造函数在单元测试中注入这种依赖性。
最佳答案
尝试在unity.config中添加以下行:
container.RegisterType<IAuthenticationManager>(new InjectionFactory(o => HttpContext.Current.GetOwinContext().Authentication));