This library was constructed based on the MongoDB.AspNet.Identity.
ASP.NET Identity provider that users LiteDB for storage
ASP.NET MVC 5 shipped with a new Identity system (in the Microsoft.AspNet.Identity.Core package) in order to support both local login and remote logins via OpenID/OAuth, but only ships with an Entity Framework provider (Microsoft.AspNet.Identity.EntityFramework).
- Drop-in replacement ASP.NET Identity with LiteDB as the backing store.
- Requires only 1 LiteDb document type, while EntityFramework requires 5 tables
- Contains the same IdentityUser class used by the EntityFramework provider in the MVC 5 project template.
- Supports additional profile properties on your application's user model.
- Provides UserStore implementation that implements the same interfaces as the EntityFramework version:
- IUserStore
- IUserLoginStore
- IUserRoleStore
- IUserClaimStore
- IUserPasswordStore
- IUserSecurityStampStore
These instructions assume you know how to set up LiteDB within an MVC application.
- Create a new ASP.NET MVC 5 project, choosing the Individual User Accounts authentication type.
- Remove the Entity Framework packages and replace with LiteDB Identity:
Uninstall-Package Microsoft.AspNet.Identity.EntityFramework
Uninstall-Package EntityFramework
Install-Package LiteDB.AspNet.Identity
- In ~/Models/IdentityModels.cs:
- Remove the namespace: Microsoft.AspNet.Identity.EntityFramework
- Add the namespace: AspNet.Identity.LiteDB
- Remove the ApplicationDbContext class completely.
- In ~/Controllers/AccountController.cs
- Remove the namespace: Microsoft.AspNet.Identity.EntityFramework
- Add the connection string name to the constructor of the UserStore. Or empty constructor will use DefaultConnection
public AccountController()
{
this.UserManager = new UserManager<ApplicationUser>(
new UserStore<ApplicationUser>("myDb.data");
// OR
this.UserManager = new UserManager<ApplicationUser>(
new UserStore<ApplicationUser>("DefaultConnection");
}
The UserStore has multiple constructors for handling connection strings. Here are some examples of the expected inputs and where the connection string should be located.
UserStore(string connectionNameOrPath)
UserStore("LiteDBUsers")
web.config
<add name="LiteDBUsers" connectionString="{YourDataBaseFile}" />
OR
UserStore(string connectionNameOrPath)
UserStore("{YourDataBaseFile}")
Special thanks to MaxiomTech InspectorIT project gave me the base for jumpstarting the LiteDB provider