Merge pull request #40 from d-barker/netcoreapp3.1

Remove AspNet 2.2 dependencies
This commit is contained in:
Alexandre SPIESER
2021-03-04 10:21:50 +00:00
committed by GitHub
14 changed files with 138 additions and 96 deletions
+6 -2
View File
@@ -297,5 +297,9 @@ __pycache__/
*.btm.cs
*.odx.cs
*.xsd.cs
sample/MongoIdentitySample.Mvc/appsettings.local.json
test/AspNetCore.Identity.MongoDbCore.IntegrationTests/appsettings.local.json
# Local app settings for development
**/**/appsettings.local.json
# Output from the code coverage analysis
**/**/coverage.json
@@ -8,20 +8,15 @@
<ItemGroup>
<PackageReference Include="AspNetCore.Identity.MongoDbCore" Version="2.1.1" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.13.0-beta1" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.1.1" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.1" />
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="3.1.1" />
<PackageReference Include="Microsoft.Extensions.Identity.Core" Version="3.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="3.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.1.1" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.0" Condition="'$(Configuration)' == 'Debug'" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.17.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.1.12" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.12" />
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="3.1.12" />
<PackageReference Include="Microsoft.Extensions.Identity.Core" Version="3.1.12" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="3.1.12" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.1.12" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.12" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.12" Condition="'$(Configuration)' == 'Debug'" />
</ItemGroup>
<ItemGroup>
@@ -35,5 +30,10 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<!-- Select one of the following to build this solution -->
<ItemGroup>
<!-- <PackageReference Include="AspNetCore.Identity.MongoDbCore" Version="3.1.0" /> -->
<ProjectReference Include="..\..\src\AspNetCore.Identity.MongoDbCore.csproj" />
</ItemGroup>
</Project>
+10 -11
View File
@@ -1,15 +1,15 @@
using AspNetCore.Identity.MongoDbCore.Infrastructure;
using System;
using AspNetCore.Identity.MongoDbCore.Infrastructure;
using AspNetCore.Identity.MongoDbCore.Models;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using MongoIdentitySample.Mvc.Models;
using MongoIdentitySample.Mvc.Services;
using Microsoft.Extensions.Logging;
using System;
namespace MongoIdentitySample.Mvc
{
@@ -49,15 +49,14 @@ namespace MongoIdentitySample.Mvc
var builder = services.AddRazorPages();
#if DEBUG
if(_env.IsDevelopment())
{
builder.AddRazorRuntimeCompilation();
}
#endif
#if DEBUG
if (_env.IsDevelopment())
{
builder.AddRazorRuntimeCompilation();
}
#endif
services.AddMvc();
services.AddApplicationInsightsTelemetry();
// Add application services.
@@ -4,7 +4,7 @@
"DatabaseName": "MongoDbTests"
},
"Logging": {
"IncludeScopes": false,
"IncludeScopes": {},
"LogLevel": {
"Default": "Warning"
}
+5 -2
View File
@@ -2,6 +2,8 @@
<PropertyGroup>
<TargetFrameworks>netcoreapp3.1;netstandard2.1</TargetFrameworks>
<Version>3.1.0</Version>
<FileVersion>3.1.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
@@ -13,8 +15,9 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="3.1.1" />
<PackageReference Include="Microsoft.Extensions.Identity.Core" Version="3.1.12" />
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="3.1.12" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.2.0" />
<PackageReference Include="MongoDB.Driver" Version="2.9.3" />
<PackageReference Include="MongoDbGenericRepository" Version="1.4.3" />
</ItemGroup>
+9 -9
View File
@@ -2,29 +2,29 @@
<package >
<metadata>
<id>AspNetCore.Identity.MongoDbCore</id>
<version>2.1.1</version>
<version>3.1.0</version>
<title>AspNetCore.Identity.MongoDbCore</title>
<authors>Alexandre Spieser</authors>
<owners>Alexandre Spieser</owners>
<license type="expression">MIT</license>
<projectUrl>https://github.com/alexandre-spieser/AspNetCore.Identity.MongoDbCore</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>A MongoDb UserStore and RoleStore adapter for Microsoft.AspNetCore.Identity 2.2.</description>
<description>A MongoDb UserStore and RoleStore adapter for Microsoft.Extensions.Identity.Core 3.1.</description>
<releaseNotes>Release notes are at https://github.com/alexandre-spieser/AspNetCore.Identity.MongoDbCore/releases</releaseNotes>
<copyright>Copyright 2020 (c) Alexandre Spieser. All rights reserved.</copyright>
<tags>aspnetcore mongo mongodb identity membership</tags>
<dependencies>
<group targetFramework="netstandard2.1">
<dependency id="Microsoft.AspNetCore.Identity" version="2.2.0" />
<dependency id="Microsoft.Extensions.Identity.Stores" version="3.1.1" />
<dependency id="MongoDB.Driver" version="2.9.3" />
<dependency id="MongoDbGenericRepository" version="1.4.1" />
<dependency id="Microsoft.Extensions.Identity.Core" version="3.1.8" />
<dependency id="Microsoft.Extensions.Identity.Stores" version="3.1.8" />
<dependency id="MongoDB.Driver" version="2.9.3" />
<dependency id="MongoDbGenericRepository" version="1.4.5" />
</group>
<group targetFramework="netcoreapp3.1">
<dependency id="Microsoft.AspNetCore.Identity" version="2.2" />
<dependency id="Microsoft.Extensions.Identity.Stores" version="3.1.1" />
<dependency id="Microsoft.Extensions.Identity.Core" version="3.1.8" />
<dependency id="Microsoft.Extensions.Identity.Stores" version="3.1.8" />
<dependency id="MongoDB.Driver" version="2.9.3" />
<dependency id="MongoDbGenericRepository" version="1.4.3" />
<dependency id="MongoDbGenericRepository" version="1.4.5" />
</group>
</dependencies>
</metadata>
+30 -18
View File
@@ -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
/// <typeparam name="TKey">The type of the primary key of the identity document.</typeparam>
/// <param name="services">The collection of service descriptors.</param>
/// <param name="mongoDbIdentityConfiguration">A configuration object of the AspNetCore.Identity.MongoDbCore package.</param>
public static void ConfigureMongoDbIdentityUserOnly<TUser, TKey>(
public static IdentityBuilder ConfigureMongoDbIdentityUserOnly<TUser, TKey>(
this IServiceCollection services,
MongoDbIdentityConfiguration mongoDbIdentityConfiguration)
where TUser : MongoIdentityUser<TKey>, new()
where TKey : IEquatable<TKey>
{
ValidateMongoDbSettings(mongoDbIdentityConfiguration.MongoDbSettings);
CommonMongoDbSetup<TUser, MongoIdentityRole<TKey>, TKey>(services, mongoDbIdentityConfiguration);
return CommonMongoDbSetup<TUser, MongoIdentityRole<TKey>, TKey>(services, mongoDbIdentityConfiguration);
}
@@ -36,11 +38,12 @@ namespace AspNetCore.Identity.MongoDbCore.Extensions
/// <typeparam name="TUser">The type representing a user.</typeparam>
/// <param name="services">The collection of service descriptors.</param>
/// <param name="mongoDbIdentityConfiguration">A configuration object of the AspNetCore.Identity.MongoDbCore package.</param>
public static void ConfigureMongoDbIdentity<TUser>(this IServiceCollection services, MongoDbIdentityConfiguration mongoDbIdentityConfiguration)
public static IdentityBuilder ConfigureMongoDbIdentity<TUser>(this IServiceCollection services, MongoDbIdentityConfiguration mongoDbIdentityConfiguration)
where TUser : MongoIdentityUser, new()
{
ValidateMongoDbSettings(mongoDbIdentityConfiguration.MongoDbSettings);
CommonMongoDbSetup<TUser, MongoIdentityRole, Guid>(services, mongoDbIdentityConfiguration);
return CommonMongoDbSetup<TUser, MongoIdentityRole, Guid>(services, mongoDbIdentityConfiguration);
}
/// <summary>
@@ -74,51 +77,60 @@ namespace AspNetCore.Identity.MongoDbCore.Extensions
/// <param name="services">The collection of service descriptors.</param>
/// <param name="mongoDbIdentityConfiguration">A configuration object of the AspNetCore.Identity.MongoDbCore package.</param>
/// <param name="mongoDbContext">An object representing a MongoDb connection.</param>
public static void ConfigureMongoDbIdentity<TUser, TRole, TKey>(this IServiceCollection services, MongoDbIdentityConfiguration mongoDbIdentityConfiguration,
public static IdentityBuilder ConfigureMongoDbIdentity<TUser, TRole, TKey>(this IServiceCollection services, MongoDbIdentityConfiguration mongoDbIdentityConfiguration,
IMongoDbContext mongoDbContext = null)
where TUser : MongoIdentityUser<TKey>, new()
where TRole : MongoIdentityRole<TKey>, new()
where TKey : IEquatable<TKey>
{
IdentityBuilder builder;
ValidateMongoDbSettings(mongoDbIdentityConfiguration.MongoDbSettings);
if(mongoDbContext == null)
if (mongoDbContext == null)
{
services.AddIdentity<TUser, TRole>()
builder = services.AddIdentityCore<TUser>()
.AddRoles<TRole>()
.AddMongoDbStores<TUser, TRole, TKey>(
mongoDbIdentityConfiguration.MongoDbSettings.ConnectionString,
mongoDbIdentityConfiguration.MongoDbSettings.DatabaseName)
.AddDefaultTokenProviders();
mongoDbIdentityConfiguration.MongoDbSettings.DatabaseName);
}
else
{
services.AddIdentity<TUser, TRole>()
.AddMongoDbStores<IMongoDbContext>(mongoDbContext)
.AddDefaultTokenProviders();
builder = services.AddIdentityCore<TUser>()
.AddRoles<TRole>()
.AddMongoDbStores<IMongoDbContext>(mongoDbContext);
}
if (mongoDbIdentityConfiguration.IdentityOptionsAction != null)
{
services.Configure(mongoDbIdentityConfiguration.IdentityOptionsAction);
}
return builder;
}
private static void CommonMongoDbSetup<TUser, TRole, TKey>(this IServiceCollection services, MongoDbIdentityConfiguration mongoDbIdentityConfiguration)
private static IdentityBuilder CommonMongoDbSetup<TUser, TRole, TKey>(this IServiceCollection services, MongoDbIdentityConfiguration mongoDbIdentityConfiguration)
where TUser : MongoIdentityUser<TKey>, new()
where TRole : MongoIdentityRole<TKey>, new()
where TKey : IEquatable<TKey>
{
services.AddIdentity<TUser, TRole>()
IdentityBuilder builder;
builder = services.AddIdentityCore<TUser>()
.AddRoles<TRole>()
.AddMongoDbStores<TUser, TRole, TKey>(
mongoDbIdentityConfiguration.MongoDbSettings.ConnectionString,
mongoDbIdentityConfiguration.MongoDbSettings.DatabaseName)
.AddDefaultTokenProviders();
mongoDbIdentityConfiguration.MongoDbSettings.DatabaseName);
if (mongoDbIdentityConfiguration.IdentityOptionsAction != null)
{
services.Configure(mongoDbIdentityConfiguration.IdentityOptionsAction);
}
return builder;
}
}
}
+6
View File
@@ -0,0 +1,6 @@
Write-Output "Package AspNetCore.Identity.MongoDbCore"
Remove-Item -Path "./bin/Release" -Force -Recurse
& dotnet pack -c Release -p:NuspecFile=AspNetCore.Identity.MongoDbCore.nuspec
@@ -7,23 +7,21 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AspNetCore.Identity.MongoDbCore" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Hosting" Version="2.2.7" />
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.1.1" />
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="3.1.1" />
<PackageReference Include="Microsoft.Extensions.Identity.Core" Version="3.1.1" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="3.1.1" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.1.12" />
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="3.1.12" />
<PackageReference Include="Microsoft.Extensions.Identity.Core" Version="3.1.12" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.12" />
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="3.1.12" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="MongoDB.Driver" Version="2.10.1" />
<PackageReference Include="MongoDbGenericRepository" Version="1.4.3" />
<PackageReference Include="Moq" Version="4.13.1" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="coverlet.msbuild" Version="2.9.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="dotnet-reportgenerator-cli" Version="4.6.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
@@ -35,4 +33,8 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\AspNetCore.Identity.MongoDbCore.csproj" />
</ItemGroup>
</Project>
@@ -6,17 +6,17 @@ using System.Linq;
using System.Linq.Expressions;
using System.Security.Claims;
using System.Threading.Tasks;
using AspNetCore.Identity.MongoDbCore.Extensions;
using AspNetCore.Identity.MongoDbCore.IntegrationTests.Infrastructure;
using AspNetCore.Identity.MongoDbCore.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.Test;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Xunit;
using AspNetCore.Identity.MongoDbCore.Models;
using AspNetCore.Identity.MongoDbCore.Extensions;
using MongoDB.Driver;
using AspNetCore.Identity.MongoDbCore.IntegrationTests.Infrastructure;
using MongoDbGenericRepository;
using Microsoft.AspNetCore.Identity;
using Xunit;
namespace AspNetCore.Identity.MongoDbCore.Test
{
@@ -39,9 +39,12 @@ namespace AspNetCore.Identity.MongoDbCore.Test
{
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
// configure the default type name
services.ConfigureMongoDbIdentity<TUser, TRole, TKey>(Container.MongoDbIdentityConfiguration, Container.MongoRepository.Context);
services.ConfigureMongoDbIdentity<TUser, TRole, TKey>(Container.MongoDbIdentityConfiguration, Container.MongoRepository.Context)
.AddDefaultTokenProviders();
services.AddAuthentication();
services.AddLogging();
services.AddSingleton<ILogger<UserManager<TUser>>>(new TestLogger<UserManager<TUser>>());
services.AddSingleton<ILogger<RoleManager<TRole>>>(new TestLogger<RoleManager<TRole>>());
}
@@ -4,13 +4,13 @@
using System;
using System.Linq.Expressions;
using System.Threading.Tasks;
using AspNetCore.Identity.MongoDbCore.IntegrationTests.Infrastructure;
using AspNetCore.Identity.MongoDbCore.Models;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.Test;
using Microsoft.Extensions.DependencyInjection;
using Xunit;
using AspNetCore.Identity.MongoDbCore.Models;
using AspNetCore.Identity.MongoDbCore.IntegrationTests.Infrastructure;
using MongoDbGenericRepository;
using Microsoft.AspNetCore.Identity;
using Xunit;
namespace AspNetCore.Identity.MongoDbCore.Test
{
@@ -308,8 +308,8 @@ namespace AspNetCore.Identity.MongoDbCore.Test
{
// Arrange
const string originalEmail = "original@email.com";
const string newEmail1 = "new1@email.com";
const string newEmail2 = "new2@email.com";
string newEmail1 = $"new{DateTime.Now.Ticks}@email.com";
string newEmail2 = $"new{DateTime.Now.Ticks+1}@email.com";
var user = CreateTestUser();
user.Email = originalEmail;
var manager = CreateManager();
@@ -7,14 +7,14 @@ using System.Linq;
using System.Linq.Expressions;
using System.Security.Claims;
using System.Threading.Tasks;
using AspNetCore.Identity.MongoDbCore.Extensions;
using AspNetCore.Identity.MongoDbCore.Infrastructure;
using AspNetCore.Identity.MongoDbCore.IntegrationTests.Infrastructure;
using AspNetCore.Identity.MongoDbCore.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Xunit;
using AspNetCore.Identity.MongoDbCore.Models;
using AspNetCore.Identity.MongoDbCore.Extensions;
using AspNetCore.Identity.MongoDbCore.Infrastructure;
using AspNetCore.Identity.MongoDbCore.IntegrationTests.Infrastructure;
namespace Microsoft.AspNetCore.Identity.Test
{
@@ -48,7 +48,10 @@ namespace Microsoft.AspNetCore.Identity.Test
protected override void SetupIdentityServices(IServiceCollection services)
{
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.ConfigureMongoDbIdentity<TUser, TRole, TKey>(Container.MongoDbIdentityConfiguration, Container.MongoRepository.Context);
services.ConfigureMongoDbIdentity<TUser, TRole, TKey>(Container.MongoDbIdentityConfiguration, Container.MongoRepository.Context)
.AddDefaultTokenProviders();
services.AddAuthentication();
services.AddLogging();
services.AddSingleton<ILogger<UserManager<TUser>>>(new TestLogger<UserManager<TUser>>());
services.AddSingleton<ILogger<RoleManager<TRole>>>(new TestLogger<RoleManager<TRole>>());
@@ -64,14 +67,17 @@ namespace Microsoft.AspNetCore.Identity.Test
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
if (concurrentSetup)
{
services.ConfigureMongoDbIdentity<TUser, TRole, TKey>(Container.MongoDbIdentityConfiguration, Container.MongoRepositoryConcurrent.Context);
services.ConfigureMongoDbIdentity<TUser, TRole, TKey>(Container.MongoDbIdentityConfiguration, Container.MongoRepositoryConcurrent.Context)
.AddDefaultTokenProviders();
}
else
{
services.ConfigureMongoDbIdentity<TUser, TRole, TKey>(Container.MongoDbIdentityConfiguration, Container.MongoRepository.Context);
services.ConfigureMongoDbIdentity<TUser, TRole, TKey>(Container.MongoDbIdentityConfiguration, Container.MongoRepository.Context)
.AddDefaultTokenProviders();
}
services.AddLogging();
services.AddAuthentication();
services.AddSingleton<ILogger<UserManager<TUser>>>(new TestLogger<UserManager<TUser>>());
services.AddSingleton<ILogger<RoleManager<TRole>>>(new TestLogger<RoleManager<TRole>>());
}
@@ -104,7 +110,7 @@ namespace Microsoft.AspNetCore.Identity.Test
services = new ServiceCollection();
}
if(context == null)
if (context == null)
{
SetupIdentityServices(services);
}
@@ -4,7 +4,7 @@
"DatabaseName": "MongoDbTests"
},
"Logging": {
"IncludeScopes": false,
"IncludeScopes": {},
"LogLevel": {
"Default": "Warning"
}
@@ -0,0 +1,7 @@
Write-Output ""
Write-Output "Running Tests with Code Coverage"
Write-Output ""
& 'dotnet' test /p:CollectCoverage=true