RavenDB identity provider for ASP.NET MVC 5+ and Web API 2+. (Looking for .NET Core identity provider for RavenDB? Check out our sister project, RavenDB.Identity.)
We're on NuGet as RavenDB.AspNet.Identity.
-
Create a new ASP.NET MVC 5 project, choosing the Individual User Accounts authentication type.
-
Remove the Entity Framework packages and replace with RavenDB Identity:
- Uninstall-Package Microsoft.AspNet.Identity.EntityFramework
- Uninstall-Package EntityFramework
- Install-Package RavenDB.AspNet.Identity
-
In ~/Models/IdentityModels.cs:
- Remove the namespace: Microsoft.AspNet.Identity.EntityFramework
- Add the namespace: Raven.AspNet.Identity
- Remove the entire ApplicationDbContext class. You don't need that!
-
In ~/App_Start/IdentityConfig.cs
- Update the ApplicationUserManager.Create method to get the Raven document session.
public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context) { var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<IAsyncDocumentSession>())); ... }
-
In ~/App_Start/Startup.Auth.cs:
- Remove the Entity framework context and add a RavenDB context:
// Old: app.CreatePerOwinContext(ApplicationDbContext.Create); // New. The raven variable is your Raven DocumentStore singleton. app.CreatePerOwinContext(() => raven.OpenAsyncSession());
-
Add a RavenController.cs class.
- This will save changes on the document session if the controller action executed successfully.
- You can view the RavenController.cs sample.
-
Make AccountController.cs inherit from RavenController
public class AccountController : RavenController { ... }