Вам не нужно реализовывать этот метод, даже если вы не используете EF
. Вы можете рассчитывать на идентичность asp.net, зарегистрировав пользовательский класс в IUserStore и вызывая их, чтобы использовать собственный доступ к базе данных
Я следил за этой статьей, и членство работает даже с моим собственным письменным уровнем доступа к данным:
https://markjohnson.io/articles/asp-net-core-identity-without-entity-framework/
В основном вам необходимо:
- написать свой доступ к базе данных (конечно)
- создать модель для пользователя (и для роли и т. Д.)
- создать UserStore, который реализует IUserStore, обрабатывая методы YourCustomModel
- добавьте UserStore в качестве службы при запуске приложения
После этого вы можете обращаться к менеджерам идентификации в вашем контроллере благодаря внедрению зависимостей
private readonly UserManager<YourCustomModel> _userManager;
private readonly SignInManager<YourCustomModel> _signInManager;
public YourCustomController(
UserManager<YourCustomModel> userManager,
SignInManager<YourCustomModel> signInManager
)
{
_userManager = userManager;
_signInManager = signInManager;
}
и в ваших действиях использоватьих для вызова методов идентификации:
var uModel = YourCustomModel.Static.SelectByEmail(vModel.Email);
var result = await _signInManager.PasswordSignInAsync(uModel, vModel.Password,
vModel.RememberMe, lockoutOnFailure: false);
if (result.Succeeded) ...