Я пытаюсь использовать этот код в мой контроллер:AuthenticationManager HttpContext является Null
IAccountManagementService<User> _service;
public AccountController(IAccountManagementService<User> service)
{
_service = service;
_service.AuthenticationManager = HttpContext.GetOwinContext().Authentication;
_service.UserManager = new UserManager<User>(new UserStore<User>(new DefaultContext()));
}
И это был несколько скорректирован из кода происхождения шаблонного из шаблона для ASP.NET MVC 5
Its впрыскивается через Ninject, Ninject использует загрузчик распознавателя зависимостей и модуля:
var kernel = new StandardKernel(new ModuleLoader());
DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
Так что я не знаю, если это это портя контекст.
Сервис только имеет оригинальный код абстрагированы в него, услуга выглядит следующим образом:
IRepository _repository;
public AccountManagementService(IRepository repository)
{
_repository = repository;
}
public UserManager<User> UserManager { get; set; }
public IAuthenticationManager AuthenticationManager { get; set; }
public RoleManager<IdentityRole> RoleManager { get; set; }
Исходный код выглядит примерно так:
public AccountController()
: this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())))
{
}
public AccountController(UserManager<ApplicationUser> userManager)
{
UserManager = userManager;
}
public UserManager<ApplicationUser> UserManager { get; private set; }
private IAuthenticationManager AuthenticationManager
{
get
{
return HttpContext.GetOwinContext().Authentication;
}
}
Я мог бы впрыснуть IAuthenticationManager
но на самом деле еще не изучили его должным образом.
Я просто не уверен, когда загружаю свой сайт, я нажимаю логин и берет меня в конструктор контроллера и указывает на начало строки: _service.AuthenticationManager
и сообщает мне, что HttpContext
имеет значение null.