JudahGabriel / RavenDB.AspNet.Identity

ASP.NET Identity provider that uses RavenDB for storage of users and logins.
https://www.nuget.org/packages/RavenDB.AspNet.Identity/
Apache License 2.0
51 stars 24 forks source link
asp-net-identity ravendb

# RavenDB.AspNet.Identity # 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.

Instructions

  1. Create a new ASP.NET MVC 5 project, choosing the Individual User Accounts authentication type.

  2. Remove the Entity Framework packages and replace with RavenDB Identity:

    • Uninstall-Package Microsoft.AspNet.Identity.EntityFramework
    • Uninstall-Package EntityFramework
    • Install-Package RavenDB.AspNet.Identity
  3. 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!
  4. 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>()));
        ...
    }
  5. 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());
  6. Add a RavenController.cs class.

  7. Make AccountController.cs inherit from RavenController

    public class AccountController : RavenController
    {
        ...
    }