How to use Core 1 "SignInManager" without EntityFramework c# entity-framework


I'm looking to implement authentication via the SignInManager but without the EntityFramework. I have built my own database layer using SQLClient and want to just create whatever calls is needed in order to make authentication work.

The code I have is as follows (executed from the Startup.cs):

// Add EF services to the services container.
    .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 =>
    .AddEntityFrameworkStores<OAuthAppDbContext, int>()

and I need to remove the Entity Framework reliance (and call my own db methods for gathering user details). Has anyone else done something similar in core?

Thanks in advance for any pointers! :-)

4/22/2016 12:47:55 PM

Accepted Answer

At the very least, you'll want to implement IUserStore<ApplicationUser>, IUserPasswordStore<ApplicationUser>, and IRoleStore<ApplicationUser> in any way you see fit, and register them with your IServiceCollection. There are a few other interfaces you might want to implement to get the full identity functionality (IUserClaimsStore, IUserPhoneNumberStore, IUserLockoutStore, etc. - you can find the whole list on GitHub).

Finally, don't forget to remove your EF service registrations!

I've put together a really basic in-memory example here. It's really quick and dirty, so I wouldn't recommend trying to take too much inspiration from it. If you really want to see a proper implementation, here is how the actual EF version is implemented!

6/18/2019 9:22:29 AM

Related Questions


Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow