How do you create a custom ASP.NET MVC 5 Auth without using the UserStore of Microsoft.AspNet.Identity.EntityFramework??
2 Answers
All you have to do is implement the same interfaces that the Userstore for Identity.Entityframework uses.
User will be your user class
public class MyUserStore<TUser> :
IUserLoginStore<TUser, int>,
IUserClaimStore<TUser, int>,
IUserRoleStore<TUser, int>,
IUserPasswordStore<TUser, int>,
IUserSecurityStampStore<TUser, int>,
IUserStore<TUser, int>,
IDisposable where TUser : User
{
//Implement the interfaces you need
}
Then pass your MyUserStore into the UserManager each request
new UserManager<User, int>(new MyUserStore<User>(new MyContext()))
5 Comments
John Patrick Po
Thats a bit of work.. but thanks.. Is there any other way to make the login/logout simple? Asp.NET MVC 5 Default AccountController seems complex.. I just have a simple user class with username and password stored in the DB..
jimSampica
Are you looking to make it simple or not use
Identity.Entityframework? Because that namespace is really meant to do a bunch of the grunt work for you.John Patrick Po
Is there any guide out there to customizing these things?
John Patrick Po
Simple and Dont wanna use the Identity.EntityFramework.. I want to adapt it to my application I already have my DbContexts.. and a DbSet<User> the User class is what I wrote..
jimSampica
There isn't really a way. Either you use the hookups to identity from identity.entityframework or you implement your own hookups. The other option is ditching the usermanager entirely and creating identities manually.
You can grab UserStore.cs template from the following project on GitHub and tweak it as you like, it will allow you to get rid of the dependency on Microsoft.AspNet.Identity.EntityFramework.
https://github.com/kriasoft/AspNet-Server-Template -> ./src/App.Server/Data/UserStore.cs
(disclaimer: I'm the author of this project template)
UserStorethat might not depend on EF. It is a chore to implement though...