我希望我的Web API应用程序通过ASP登录用户。净的身份。在我的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
为空。
是否有任何方法注册IAuthenticationManager
实现并在自托管和IIS中使用它?我还希望能够在单元测试中通过控制器的构造函数注入此依赖项。
尝试在统一中添加下一行。配置:
container.RegisterType<IAuthenticationManager>(new InjectionFactory(o => HttpContext.Current.GetOwinContext().Authentication));