Skip to content

Latest commit

 

History

History
65 lines (48 loc) · 2.7 KB

README.md

File metadata and controls

65 lines (48 loc) · 2.7 KB

Identity.RavenDb

ASP.NET Identity RavenDb Provider

Build status Quality Gate Status

Nuget packages

Aguacongas.Identity.RavenDb

Setup

You setup RavenDb stores using one AddRavenDbStores extension method

You can setup RavenDb stores using the current IDocumentStore:

services.AddSingleton(p => new DocumentStore
{
    Urls = new[] { "https://a.ravendb.local" },
    Database = "Identity"
}.SetFindIdentityPropertyForIdentityModel() // REQUIRED, Identity model identifiers are not computed by the database but the store
.Initialize());
services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
        .AddRavenDbStores(); 

Or with a Func<IServiceProvider, IDocumentStore> creating the IDocumentStore :

var documentStore = new DocumentStore
{
    Urls = new[] { "https://a.ravendb.local" },
    Database = "Identity"
}.SetFindIdentityPropertyForIdentityModel() // REQUIRED, Identity model identifiers are not computed by the database but the store
.Initialize();

services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
    .AddRavenDbStores(p => documentStore);

Both methods can take a string dataBase parameter to specify the RavenDb database to use:

services.AddIdentity<IdentityUser, IdentityRole>()
    .AddRedisStores(dataBase: "Identity")
    .AddDefaultTokenProviders();

Your user and role class must be IdentityUser and IdentityRole or derived.

Sample

The IdentitySample is a dotnet webapp with individual authentication using a RavenDb database.

Tests

This library is tested using Microsoft.AspNetCore.Identity.Specification.Tests, the shared test suite for Asp.Net Identity Core store implementations.