Я пытаюсь получить доступ к Microsoft.AspNetCore.Identity.SignInManager в одном из моих классов, который не является контроллером.
В Startup.ConfigureServices () у меня есть:
services.AddIdentity<IdentityUser, IdentityRole>();
В моем классе у меня есть:
public class Auth : IAuth
{
...
private readonly SignInManager<IdentityUser> _signInManager;
public Auth(..., SignInManager<IdentityUser> signInManager)
{
}
}
И я получаю это исключение:
Произошло необработанное исключение при обработке запроса.InvalidOperationException: Невозможно разрешить службу для типа 'Microsoft.AspNetCore.Identity.IUserStore 1[Microsoft.AspNetCore.Identity.IdentityUser]'
while attempting to activate
'Microsoft.AspNetCore.Identity.AspNetUserManager
1 [Microsoft.AspNetCore.Identity.IdentityUser]'.
Обратите внимание, что я даже не ссылаюсь на переданный SignInManager
объект в конструкторе (я его удалил, чтобы упростить).Если я удаляю параметр SignInManager
из конструктора, все работает нормально.
Все соответствующие примеры, которые я видел в сети, заканчиваются тем, что указанный пользователем тип данных SignInManager
в вызове AddIdentity()
не соответствует типу пользовательских данных в параметре конструктора, но в моем коде это не так.
Чтение статей и примера кода для этого заставляет думать, что это должно быть простой задачей.Другие параметры, введенные моим конструктором, работают нормально, за исключением того, что у меня возникает та же проблема, если я пытаюсь ввести RoleManager
(за исключением слегка отличающегося сообщения об исключении).