From c39a8b31099a7c464bf6b681f61ef7e7d30addf8 Mon Sep 17 00:00:00 2001 From: David Barker Date: Wed, 3 Mar 2021 15:51:44 +0800 Subject: [PATCH] Removed AspNet 2.2 dependencies Included Microsoft.Extensions.Identity.Core instead of Microsoft.AspNetCore.Identity Changed initialisation to return the IdentityBuilder so that the token providers can be set independently Had to remove AddDefaultTokenProviders as this is part of the AspNet 3.1 framework and not dotnet standard 2.1 --- src/AspNetCore.Identity.MongoDbCore.csproj | 4 +- src/Extensions/ServiceCollectionExtension.cs | 50 ++++++++++++-------- 2 files changed, 33 insertions(+), 21 deletions(-) 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; } } }