diff --git a/src/Microsoft.AspNetCore.Antiforgery/Internal/DefaultAntiforgery.cs b/src/Microsoft.AspNetCore.Antiforgery/Internal/DefaultAntiforgery.cs index 6356d3f6d7..a22576bd0b 100644 --- a/src/Microsoft.AspNetCore.Antiforgery/Internal/DefaultAntiforgery.cs +++ b/src/Microsoft.AspNetCore.Antiforgery/Internal/DefaultAntiforgery.cs @@ -50,19 +50,22 @@ namespace Microsoft.AspNetCore.Antiforgery.Internal var antiforgeryContext = GetTokensInternal(httpContext); var tokenSet = Serialize(antiforgeryContext); - if (!antiforgeryContext.HaveStoredNewCookieToken && antiforgeryContext.NewCookieToken != null) + if (!antiforgeryContext.HaveStoredNewCookieToken) { - // Serialize handles the new cookie token string. - Debug.Assert(antiforgeryContext.NewCookieTokenString != null); + if (antiforgeryContext.NewCookieToken != null) + { + // Serialize handles the new cookie token string. + Debug.Assert(antiforgeryContext.NewCookieTokenString != null); - SaveCookieTokenAndHeader(httpContext, antiforgeryContext.NewCookieTokenString); - antiforgeryContext.HaveStoredNewCookieToken = true; + SaveCookieTokenAndHeader(httpContext, antiforgeryContext.NewCookieTokenString); + antiforgeryContext.HaveStoredNewCookieToken = true; - _logger.NewCookieToken(); - } - else - { - _logger.ReusedCookieToken(); + _logger.NewCookieToken(); + } + else + { + _logger.ReusedCookieToken(); + } } return tokenSet; diff --git a/test/Microsoft.AspNetCore.Antiforgery.Test/Internal/DefaultAntiforgeryTest.cs b/test/Microsoft.AspNetCore.Antiforgery.Test/Internal/DefaultAntiforgeryTest.cs index d1571fc59b..6fd193db1a 100644 --- a/test/Microsoft.AspNetCore.Antiforgery.Test/Internal/DefaultAntiforgeryTest.cs +++ b/test/Microsoft.AspNetCore.Antiforgery.Test/Internal/DefaultAntiforgeryTest.cs @@ -6,7 +6,6 @@ using System.Security.Claims; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Internal; -using Microsoft.AspNetCore.Testing; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; @@ -878,28 +877,23 @@ namespace Microsoft.AspNetCore.Antiforgery.Internal loggerFactory: loggerFactory); } - private IServiceProvider GetServices() + private IServiceProvider GetServices(IAntiforgeryContextAccessor contextAccessor) { var builder = new ServiceCollection(); + builder.AddSingleton(contextAccessor); builder.AddSingleton(new LoggerFactory()); return builder.BuildServiceProvider(); } - private HttpContext GetHttpContext(IAntiforgeryContextAccessor contextAccessor) + private HttpContext GetHttpContext(IAntiforgeryContextAccessor contextAccessor = null) { var httpContext = new DefaultHttpContext(); - - httpContext.RequestServices = GetServices(); + contextAccessor = contextAccessor ?? new DefaultAntiforgeryContextAccessor(); + httpContext.RequestServices = GetServices(contextAccessor); httpContext.User = new ClaimsPrincipal(new ClaimsIdentity("some-auth")); - contextAccessor = contextAccessor ?? new DefaultAntiforgeryContextAccessor(); - - var serviceCollection = new ServiceCollection(); - serviceCollection.AddSingleton(contextAccessor); - httpContext.RequestServices = serviceCollection.BuildServiceProvider(); - return httpContext; }