Я использую идентификатор asp.net, и у меня есть несколько классов пользователей, которые наследуются от IdentityUser.Идентификатор Asp.net - Как войти в систему Независимо от дискриминатора
Допустим, у меня есть цепь наследования, как:
< IdentityUser - AppUser < - ServiceUser < - ServiceEmployee и ServiceCustomer (которые оба наследуют от ServiceUser).
При попытке создать единую форму входа в систему, какая из лучших стратегий?
Если вы используете контроллер учетной записи OTB и изменяете UserManager для использования ServiceUser, но попробуйте войти в учетную запись, которая была зарегистрирована как ServiceEmployee, она не сработает, потому что FindAsync(), по-видимому, пытается найти только на основе «ServiceEmployee» в поле дискриминатора , поэтому, если учетная запись была зарегистрирована как другой «тип», она не может использоваться для входа в систему. Таким образом, это происходит с любой комбинацией, когда зарегистрированные типы входа и входа различаются.
Должен ли я обновить действие входа в систему, чтобы использовать несколько UserManager, чтобы была проверка на каждый тип пользователя или есть лучший способ сделать то, что я пытаюсь достичь.
Спасибо за любую информацию.
Да, это хорошая идея, спасибо. Думаю, мое мышление не пошло так, потому что все статьи и документация об идентичности говорили об использовании наследования для разных типов пользователей. На данный момент единственным моим решением было добавить отдельные формы входа для разных типов пользователей. Это не идеальный вариант, но он работает, и мне не нужно переделывать мои пользовательские классы. Я чувствую, что должно быть еще несколько «элегантных» решений. – jmichas