diff --git a/Directory.Build.targets b/Directory.Build.targets index 78626b773e..659aae3970 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -2,7 +2,7 @@ $(MicrosoftNETCoreApp20PackageVersion) $(MicrosoftNETCoreApp21PackageVersion) - $(MicrosoftNETCoreApp22PackageVersion) + $(MicrosoftNETCoreApp30PackageVersion) $(NETStandardLibrary20PackageVersion) 99.9 diff --git a/build/dependencies.props b/build/dependencies.props index bd315f3f16..eab968113e 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -1,68 +1,66 @@ - + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 0.9.9 - 3.0.0-alpha1-20181004.7 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 + 3.0.0-alpha1-20181031.3 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-a-alpha1-react-razor-design-19157 + 3.0.0-a-alpha1-react-razor-design-19157 + 3.0.0-alpha1-10670 + 2.2.0-rtm-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10657 2.2.1 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 - 3.0.0-alpha1-10584 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10670 + 3.0.0-alpha1-10657 2.0.9 2.1.3 - 2.2.0-preview2-26905-02 - 3.0.0-alpha1-10584 + 3.0.0-preview1-26907-05 + 3.0.0-a-alpha1-sdk-31823 15.6.1 3.0.1 - 3.0.0-alpha1-10584 - 4.9.0 + 3.0.0-alpha1-10670 + 4.10.0 2.0.3 4.6.0-preview1-26907-04 0.10.0 diff --git a/korebuild-lock.txt b/korebuild-lock.txt index 591cfd52ff..8494b2123e 100644 --- a/korebuild-lock.txt +++ b/korebuild-lock.txt @@ -1,2 +1,2 @@ -version:3.0.0-alpha1-20181004.7 -commithash:27fabdaf2b1d4753c3d2749581694ca65d78f7f2 +version:3.0.0-alpha1-20181031.3 +commithash:93e5628f435045e3f2a766933dc5062048ac0426 diff --git a/samples/IdentitySample.DefaultUI/IdentitySample.DefaultUI.csproj b/samples/IdentitySample.DefaultUI/IdentitySample.DefaultUI.csproj index f7263323cd..168eda9496 100644 --- a/samples/IdentitySample.DefaultUI/IdentitySample.DefaultUI.csproj +++ b/samples/IdentitySample.DefaultUI/IdentitySample.DefaultUI.csproj @@ -2,7 +2,7 @@ Identity sample MVC application on ASP.NET Core using the default UI - netcoreapp2.2;net461 + netcoreapp3.0;net461 aspnetcore-2ff9bc27-5e8c-4484-90ca-e3aace89b72a diff --git a/samples/IdentitySample.Mvc/IdentitySample.Mvc.csproj b/samples/IdentitySample.Mvc/IdentitySample.Mvc.csproj index 783e3f7a53..c45ff1af2c 100644 --- a/samples/IdentitySample.Mvc/IdentitySample.Mvc.csproj +++ b/samples/IdentitySample.Mvc/IdentitySample.Mvc.csproj @@ -2,7 +2,7 @@ Identity sample MVC application on ASP.NET Core - netcoreapp2.2;net461 + netcoreapp3.0;net461 aspnetcore-b3d20cbe-418e-4bf2-a0f4-57f91d067e07 diff --git a/src/UI/Microsoft.AspNetCore.Identity.UI.csproj b/src/UI/Microsoft.AspNetCore.Identity.UI.csproj index 295d609e80..9c9e129bdf 100644 --- a/src/UI/Microsoft.AspNetCore.Identity.UI.csproj +++ b/src/UI/Microsoft.AspNetCore.Identity.UI.csproj @@ -12,6 +12,10 @@ false false true + + <_EnableAllInclusiveRazorSdk>true + 2.1 + MVC-2.1 @@ -66,7 +70,7 @@ BuildProjectReferences=false; RazorCompileOnBuild=true; UIFrameworkVersion=%(UIFrameworkVersionMoniker.Identity); - IntermediateOutputPath=$(IntermediateOutputPath)%(UIFrameworkVersionMoniker.Identity)\" /> + IntermediateOutputPath=$(IntermediateOutputPath)%(UIFrameworkVersionMoniker.Identity)\;" /> - netcoreapp2.2 + netcoreapp3.0 $(DeveloperBuildTestTfms) $(StandardTestTfms) - $(StandardTestTfms);net461 diff --git a/test/Identity.FunctionalTests/Microsoft.AspNetCore.Identity.FunctionalTests.csproj b/test/Identity.FunctionalTests/Microsoft.AspNetCore.Identity.FunctionalTests.csproj index 217982f7f9..baf9ad55b0 100644 --- a/test/Identity.FunctionalTests/Microsoft.AspNetCore.Identity.FunctionalTests.csproj +++ b/test/Identity.FunctionalTests/Microsoft.AspNetCore.Identity.FunctionalTests.csproj @@ -2,7 +2,7 @@ $(StandardTestTfms) - + diff --git a/test/Identity.Test/SignInManagerTest.cs b/test/Identity.Test/SignInManagerTest.cs index 316f4b8d0b..cc840112dc 100644 --- a/test/Identity.Test/SignInManagerTest.cs +++ b/test/Identity.Test/SignInManagerTest.cs @@ -10,6 +10,8 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using Moq; using Xunit; @@ -121,9 +123,8 @@ namespace Microsoft.AspNetCore.Identity.Test var options = new Mock>(); options.Setup(a => a.Value).Returns(identityOptions); var claimsFactory = new UserClaimsPrincipalFactory(manager.Object, roleManager.Object, options.Object); - var logStore = new StringBuilder(); - var logger = MockHelpers.MockILogger>(logStore); - var helper = new SignInManager(manager.Object, contextAccessor.Object, claimsFactory, options.Object, logger.Object, new Mock().Object); + var logger = new TestLogger>(); + var helper = new SignInManager(manager.Object, contextAccessor.Object, claimsFactory, options.Object, logger, new Mock().Object); // Act var result = await helper.PasswordSignInAsync(user.UserName, "bogus", false, false); @@ -131,7 +132,7 @@ namespace Microsoft.AspNetCore.Identity.Test // Assert Assert.False(result.Succeeded); Assert.True(result.IsLockedOut); - Assert.Contains($"User {user.Id} is currently locked out.", logStore.ToString()); + Assert.Contains($"User {user.Id} is currently locked out.", logger.LogMessages); manager.Verify(); } @@ -152,9 +153,8 @@ namespace Microsoft.AspNetCore.Identity.Test var options = new Mock>(); options.Setup(a => a.Value).Returns(identityOptions); var claimsFactory = new UserClaimsPrincipalFactory(manager.Object, roleManager.Object, options.Object); - var logStore = new StringBuilder(); - var logger = MockHelpers.MockILogger>(logStore); - var helper = new SignInManager(manager.Object, contextAccessor.Object, claimsFactory, options.Object, logger.Object, new Mock().Object); + var logger = new TestLogger>(); + var helper = new SignInManager(manager.Object, contextAccessor.Object, claimsFactory, options.Object, logger, new Mock().Object); // Act var result = await helper.CheckPasswordSignInAsync(user, "bogus", false); @@ -162,7 +162,7 @@ namespace Microsoft.AspNetCore.Identity.Test // Assert Assert.False(result.Succeeded); Assert.True(result.IsLockedOut); - Assert.Contains($"User {user.Id} is currently locked out.", logStore.ToString()); + Assert.Contains($"User {user.Id} is currently locked out.", logger.LogMessages); manager.Verify(); } @@ -176,7 +176,7 @@ namespace Microsoft.AspNetCore.Identity.Test return manager; } - private static SignInManager SetupSignInManager(UserManager manager, HttpContext context, StringBuilder logStore = null, IdentityOptions identityOptions = null, IAuthenticationSchemeProvider schemeProvider = null) + private static SignInManager SetupSignInManager(UserManager manager, HttpContext context, ILogger logger = null, IdentityOptions identityOptions = null, IAuthenticationSchemeProvider schemeProvider = null) { var contextAccessor = new Mock(); contextAccessor.Setup(a => a.HttpContext).Returns(context); @@ -187,7 +187,7 @@ namespace Microsoft.AspNetCore.Identity.Test var claimsFactory = new UserClaimsPrincipalFactory(manager, roleManager.Object, options.Object); schemeProvider = schemeProvider ?? new Mock().Object; var sm = new SignInManager(manager, contextAccessor.Object, claimsFactory, options.Object, null, schemeProvider); - sm.Logger = MockHelpers.MockILogger>(logStore ?? new StringBuilder()).Object; + sm.Logger = logger ?? NullLogger>.Instance; return sm; } @@ -759,8 +759,9 @@ namespace Microsoft.AspNetCore.Identity.Test manager.Setup(m => m.IsLockedOutAsync(user)).ReturnsAsync(false).Verifiable(); manager.Setup(m => m.CheckPasswordAsync(user, "bogus")).ReturnsAsync(false).Verifiable(); var context = new Mock(); - var logStore = new StringBuilder(); - var helper = SetupSignInManager(manager.Object, context.Object, logStore); + var logger = new TestLogger>(); + var helper = SetupSignInManager(manager.Object, context.Object, logger); + // Act var result = await helper.PasswordSignInAsync(user.UserName, "bogus", false, false); var checkResult = await helper.CheckPasswordSignInAsync(user, "bogus", false); @@ -768,7 +769,7 @@ namespace Microsoft.AspNetCore.Identity.Test // Assert Assert.False(result.Succeeded); Assert.False(checkResult.Succeeded); - Assert.Contains($"User {user.Id} failed to provide the correct password.", logStore.ToString()); + Assert.Contains($"User {user.Id} failed to provide the correct password.", logger.LogMessages); manager.Verify(); context.Verify(); } @@ -867,8 +868,8 @@ namespace Microsoft.AspNetCore.Identity.Test } var identityOptions = new IdentityOptions(); identityOptions.SignIn.RequireConfirmedEmail = true; - var logStore = new StringBuilder(); - var helper = SetupSignInManager(manager.Object, context, logStore, identityOptions); + var logger = new TestLogger>(); + var helper = SetupSignInManager(manager.Object, context, logger, identityOptions); // Act var result = await helper.PasswordSignInAsync(user, "password", false, false); @@ -877,7 +878,16 @@ namespace Microsoft.AspNetCore.Identity.Test Assert.Equal(confirmed, result.Succeeded); Assert.NotEqual(confirmed, result.IsNotAllowed); - Assert.Equal(confirmed, !logStore.ToString().Contains($"User {user.Id} cannot sign in without a confirmed email.")); + + var message = $"User {user.Id} cannot sign in without a confirmed email."; + if (!confirmed) + { + Assert.Contains(message, logger.LogMessages); + } + else + { + Assert.DoesNotContain(message, logger.LogMessages); + } manager.Verify(); auth.Verify(); @@ -912,8 +922,8 @@ namespace Microsoft.AspNetCore.Identity.Test var identityOptions = new IdentityOptions(); identityOptions.SignIn.RequireConfirmedPhoneNumber = true; - var logStore = new StringBuilder(); - var helper = SetupSignInManager(manager.Object, context, logStore, identityOptions); + var logger = new TestLogger>(); + var helper = SetupSignInManager(manager.Object, context, logger, identityOptions); // Act var result = await helper.PasswordSignInAsync(user, "password", false, false); @@ -921,7 +931,17 @@ namespace Microsoft.AspNetCore.Identity.Test // Assert Assert.Equal(confirmed, result.Succeeded); Assert.NotEqual(confirmed, result.IsNotAllowed); - Assert.Equal(confirmed, !logStore.ToString().Contains($"User {user.Id} cannot sign in without a confirmed phone number.")); + + var message = $"User {user.Id} cannot sign in without a confirmed phone number."; + if (!confirmed) + { + Assert.Contains(message, logger.LogMessages); + } + else + { + Assert.DoesNotContain(message, logger.LogMessages); + } + manager.Verify(); auth.Verify(); } diff --git a/test/Shared/MockHelpers.cs b/test/Shared/MockHelpers.cs index bb6c98699e..c476e52044 100644 --- a/test/Shared/MockHelpers.cs +++ b/test/Shared/MockHelpers.cs @@ -34,35 +34,6 @@ namespace Microsoft.AspNetCore.Identity.Test new IdentityErrorDescriber(), null); } - public static Mock> MockILogger(StringBuilder logStore = null) where T : class - { - logStore = logStore ?? LogMessage; - var logger = new Mock>(); - logger.Setup(x => x.Log(It.IsAny(), It.IsAny(), It.IsAny(), - It.IsAny(), It.IsAny>())) - .Callback((LogLevel logLevel, EventId eventId, object state, Exception exception, Func formatter) => - { - if (formatter == null) - { - logStore.Append(state.ToString()); - } - else - { - logStore.Append(formatter(state, exception)); - } - logStore.Append(" "); - }); - logger.Setup(x => x.BeginScope(It.IsAny())).Callback((object state) => - { - logStore.Append(state.ToString()); - logStore.Append(" "); - }); - logger.Setup(x => x.IsEnabled(LogLevel.Debug)).Returns(true); - logger.Setup(x => x.IsEnabled(LogLevel.Warning)).Returns(true); - - return logger; - } - public static UserManager TestUserManager(IUserStore store = null) where TUser : class { store = store ?? new Mock>().Object; diff --git a/test/WebSites/Directory.Build.props b/test/WebSites/Directory.Build.props index c2bab8572a..571723247e 100644 --- a/test/WebSites/Directory.Build.props +++ b/test/WebSites/Directory.Build.props @@ -3,9 +3,8 @@ - netcoreapp2.2 + netcoreapp3.0 $(DeveloperBuildTestWebsiteTfms) $(StandardTestWebsiteTfms) - $(StandardTestWebsiteTfms);net461 diff --git a/test/WebSites/Identity.DefaultUI.WebSite/Identity.DefaultUI.WebSite.csproj b/test/WebSites/Identity.DefaultUI.WebSite/Identity.DefaultUI.WebSite.csproj index ff9afd8729..f70236936e 100644 --- a/test/WebSites/Identity.DefaultUI.WebSite/Identity.DefaultUI.WebSite.csproj +++ b/test/WebSites/Identity.DefaultUI.WebSite/Identity.DefaultUI.WebSite.csproj @@ -45,4 +45,4 @@ - \ No newline at end of file +