diff --git a/src/AspNetCore.Identity.MongoDbCore.csproj b/src/AspNetCore.Identity.MongoDbCore.csproj index 5bd3c4f..c7df969 100644 --- a/src/AspNetCore.Identity.MongoDbCore.csproj +++ b/src/AspNetCore.Identity.MongoDbCore.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/src/Extensions/ServiceCollectionExtension.cs b/src/Extensions/ServiceCollectionExtension.cs index 8c96b20..3801a13 100644 --- a/src/Extensions/ServiceCollectionExtension.cs +++ b/src/Extensions/ServiceCollectionExtension.cs @@ -1,9 +1,10 @@ -using AspNetCore.Identity.MongoDbCore.Infrastructure; +using System; +using AspNetCore.Identity.MongoDbCore.Infrastructure; using AspNetCore.Identity.MongoDbCore.Models; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Identity.Core; using MongoDbGenericRepository; -using System; namespace AspNetCore.Identity.MongoDbCore.Extensions { @@ -19,14 +20,15 @@ namespace AspNetCore.Identity.MongoDbCore.Extensions /// The type of the primary key of the identity document. /// The collection of service descriptors. /// A configuration object of the AspNetCore.Identity.MongoDbCore package. - public static void ConfigureMongoDbIdentityUserOnly( + public static IdentityBuilder ConfigureMongoDbIdentityUserOnly( this IServiceCollection services, MongoDbIdentityConfiguration mongoDbIdentityConfiguration) where TUser : MongoIdentityUser, new() where TKey : IEquatable { ValidateMongoDbSettings(mongoDbIdentityConfiguration.MongoDbSettings); - CommonMongoDbSetup, TKey>(services, mongoDbIdentityConfiguration); + + return CommonMongoDbSetup, TKey>(services, mongoDbIdentityConfiguration); } @@ -36,11 +38,12 @@ namespace AspNetCore.Identity.MongoDbCore.Extensions /// The type representing a user. /// The collection of service descriptors. /// A configuration object of the AspNetCore.Identity.MongoDbCore package. - public static void ConfigureMongoDbIdentity(this IServiceCollection services, MongoDbIdentityConfiguration mongoDbIdentityConfiguration) + public static IdentityBuilder ConfigureMongoDbIdentity(this IServiceCollection services, MongoDbIdentityConfiguration mongoDbIdentityConfiguration) where TUser : MongoIdentityUser, new() { ValidateMongoDbSettings(mongoDbIdentityConfiguration.MongoDbSettings); - CommonMongoDbSetup(services, mongoDbIdentityConfiguration); + + return CommonMongoDbSetup(services, mongoDbIdentityConfiguration); } /// @@ -74,51 +77,60 @@ namespace AspNetCore.Identity.MongoDbCore.Extensions /// The collection of service descriptors. /// A configuration object of the AspNetCore.Identity.MongoDbCore package. /// An object representing a MongoDb connection. - public static void ConfigureMongoDbIdentity(this IServiceCollection services, MongoDbIdentityConfiguration mongoDbIdentityConfiguration, + public static IdentityBuilder ConfigureMongoDbIdentity(this IServiceCollection services, MongoDbIdentityConfiguration mongoDbIdentityConfiguration, IMongoDbContext mongoDbContext = null) where TUser : MongoIdentityUser, new() where TRole : MongoIdentityRole, new() where TKey : IEquatable { + IdentityBuilder builder; + ValidateMongoDbSettings(mongoDbIdentityConfiguration.MongoDbSettings); - if(mongoDbContext == null) + if (mongoDbContext == null) { - services.AddIdentity() + builder = services.AddIdentityCore() + .AddRoles() .AddMongoDbStores( mongoDbIdentityConfiguration.MongoDbSettings.ConnectionString, - mongoDbIdentityConfiguration.MongoDbSettings.DatabaseName) - .AddDefaultTokenProviders(); + mongoDbIdentityConfiguration.MongoDbSettings.DatabaseName); } else { - services.AddIdentity() - .AddMongoDbStores(mongoDbContext) - .AddDefaultTokenProviders(); + builder = services.AddIdentityCore() + .AddRoles() + .AddMongoDbStores(mongoDbContext); } if (mongoDbIdentityConfiguration.IdentityOptionsAction != null) { services.Configure(mongoDbIdentityConfiguration.IdentityOptionsAction); } + + return builder; } - private static void CommonMongoDbSetup(this IServiceCollection services, MongoDbIdentityConfiguration mongoDbIdentityConfiguration) + private static IdentityBuilder CommonMongoDbSetup(this IServiceCollection services, MongoDbIdentityConfiguration mongoDbIdentityConfiguration) where TUser : MongoIdentityUser, new() where TRole : MongoIdentityRole, new() where TKey : IEquatable { - services.AddIdentity() + + IdentityBuilder builder; + + builder = services.AddIdentityCore() + .AddRoles() .AddMongoDbStores( - mongoDbIdentityConfiguration.MongoDbSettings.ConnectionString, - mongoDbIdentityConfiguration.MongoDbSettings.DatabaseName) - .AddDefaultTokenProviders(); + mongoDbIdentityConfiguration.MongoDbSettings.ConnectionString, + mongoDbIdentityConfiguration.MongoDbSettings.DatabaseName); if (mongoDbIdentityConfiguration.IdentityOptionsAction != null) { services.Configure(mongoDbIdentityConfiguration.IdentityOptionsAction); } + + return builder; } } }