Подтвердить что ты не робот

Как использовать ASP.net Core 1 "SignInManager" без EntityFramework

Я ищу реализацию аутентификации ASP.net через SignInManager, но без EntityFramework. Я создал свой собственный уровень базы данных с помощью SQLClient и хочу просто создать любые вызовы, необходимые для обеспечения аутентификации ASP.net.

Код, который у меня есть, выглядит следующим образом (выполняется из Startup.cs):

// Add EF services to the services container.
services.AddEntityFramework()
    .AddSqlServer()
    .AddDbContext<OAuthAppDbContext>(opt => opt.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));

// Add Identity services to the services container.
services.AddIdentity<ApplicationUser, ApplicationRole>(options =>
{
    options.Cookies.ApplicationCookieAuthenticationScheme = "ApplicationCookie";
    options.Cookies.ApplicationCookie.AuthenticationScheme = "ApplicationCookie";
    options.Cookies.ApplicationCookie.CookieName = "oAuthInterop";
    options.Cookies.ApplicationCookie.AutomaticChallenge = true;
    options.Cookies.ApplicationCookie.AutomaticAuthenticate = true;
    options.Cookies.ApplicationCookie.DataProtectionProvider = new DataProtectionProvider(new DirectoryInfo("d:\\development\\artefacts"),
        configure =>
        {
            configure.SetApplicationName("TestAuthApp");
            //configure.ProtectKeysWithCertificate("thumbprint");
        });
})
    .AddEntityFrameworkStores<OAuthAppDbContext, int>()
    .AddDefaultTokenProviders();

и мне нужно удалить доверенность Entity Framework (и вызвать мои собственные методы db для сбора сведений о пользователе). Кто-нибудь еще сделал что-то подобное в ядре ASP.net?

Спасибо заранее за любые указатели!: -)

4b9b3361

Ответ 1

По крайней мере, вы захотите реализовать IUserStore <ApplicationUser>, IUserPasswordStore <ApplicationUser> и IRoleStore <ApplicationUser> любым удобным для вас способом и зарегистрировать их в своем IServiceCollection. Есть несколько других интерфейсов, которые вы, возможно, захотите реализовать, чтобы получить полную функциональность идентификации (IUserClaimsStore, IUserPhoneNumberStore, IUserLockoutStore и т.д. - вы можете найти весь список в GitHub).

Наконец, не забудьте удалить регистрацию в EF-сервисе!

Я поставил вместе очень простой пример в памяти здесь. Это действительно быстро и грязно, поэтому я бы не советовал пытаться черпать из этого слишком много вдохновения. Если вы действительно хотите увидеть правильную реализацию, вот как реализована актуальная версия EF !