From 9fe92db2e1f2af6f8c3421d82205dfe9491ad84c Mon Sep 17 00:00:00 2001 From: alexandre-spieser Date: Sun, 19 Nov 2017 18:47:55 +0000 Subject: [PATCH] Make sure the lifetime of the UserStore is the same as the UserManager to avoid ObjectDisposed exceptions. --- src/Extensions/MongoDbIdentityBuilderExtensions.cs | 10 +++++----- src/MongoUserStore.cs | 7 ------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/Extensions/MongoDbIdentityBuilderExtensions.cs b/src/Extensions/MongoDbIdentityBuilderExtensions.cs index 5f28be6..2693c55 100644 --- a/src/Extensions/MongoDbIdentityBuilderExtensions.cs +++ b/src/Extensions/MongoDbIdentityBuilderExtensions.cs @@ -91,12 +91,12 @@ namespace Microsoft.Extensions.DependencyInjection builder.Services.TryAddSingleton(mongoDbContext); builder.Services.TryAddSingleton(new MongoRepository(mongoDbContext)); - builder.Services.TryAddSingleton>(provider => + builder.Services.TryAddScoped>(provider => { return new MongoUserStore(provider.GetService()); }); - builder.Services.TryAddSingleton>(provider => + builder.Services.TryAddScoped>(provider => { return new MongoRoleStore(provider.GetService()); }); @@ -128,15 +128,15 @@ namespace Microsoft.Extensions.DependencyInjection userStoreType = typeof(MongoUserStore<,,,>).MakeGenericType(userType, roleType, contextType, keyType); roleStoreType = typeof(MongoRoleStore<,,>).MakeGenericType(roleType, contextType, keyType); - services.TryAddSingleton(typeof(IUserStore<>).MakeGenericType(userType), userStoreType); - services.TryAddSingleton(typeof(IRoleStore<>).MakeGenericType(roleType), roleStoreType); + services.TryAddScoped(typeof(IUserStore<>).MakeGenericType(userType), userStoreType); + services.TryAddScoped(typeof(IRoleStore<>).MakeGenericType(roleType), roleStoreType); } else { // No Roles Type userStoreType = null; // If its a custom DbContext, we can only add the default POCOs userStoreType = typeof(MongoUserStore<,,,>).MakeGenericType(userType, roleType, contextType, keyType); - services.TryAddSingleton(typeof(IUserStore<>).MakeGenericType(userType), userStoreType); + services.TryAddScoped(typeof(IUserStore<>).MakeGenericType(userType), userStoreType); } } diff --git a/src/MongoUserStore.cs b/src/MongoUserStore.cs index e71b362..d1a534d 100644 --- a/src/MongoUserStore.cs +++ b/src/MongoUserStore.cs @@ -1311,12 +1311,5 @@ namespace AspNetCore.Identity.MongoDbCore } #endregion - - /// - /// Prevent the - /// - public new void Dispose() - { - } } } \ No newline at end of file