From 125247fddbdd48cf5aee54d3fe44200274f26854 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle Date: Mon, 4 Oct 2021 09:18:41 +0200 Subject: [PATCH] Updated classes according to review Signed-off-by: Nikolaj Geisle --- src/Umbraco.Core/Packaging/PackagesRepository.cs | 4 ++-- src/Umbraco.Core/Routing/UrlProvider.cs | 5 +++-- src/Umbraco.Core/Runtime/EssentialDirectoryCreator.cs | 4 ++-- .../DependencyInjection/UmbracoBuilder.Services.cs | 2 +- .../HostedServices/HealthCheckNotifier.cs | 11 +++++------ .../ServerRegistration/TouchServerTask.cs | 9 ++++----- .../Security/BackOfficeUserStore.cs | 8 +++----- .../Security/IdentityMapDefinition.cs | 6 ++---- .../Security/UmbracoUserManager.cs | 5 ++--- .../Packaging/CreatedPackagesRepositoryTests.cs | 2 +- .../Security/BackOfficeUserStoreTests.cs | 2 +- .../Templates/HtmlImageSourceParserTests.cs | 2 +- .../Templates/HtmlLocalLinkParserTests.cs | 2 +- .../HostedServices/HealthCheckNotifierTests.cs | 2 +- .../ServerRegistration/TouchServerTaskTests.cs | 2 +- .../Security/MemberManagerTests.cs | 8 ++++---- .../Filters/AngularJsonOnlyConfigurationAttribute.cs | 5 ++--- .../Localization/UmbracoRequestLocalizationOptions.cs | 5 ++--- .../Security/BackOfficeUserManager.cs | 2 +- src/Umbraco.Web.Common/Security/MemberManager.cs | 2 +- 20 files changed, 40 insertions(+), 48 deletions(-) diff --git a/src/Umbraco.Core/Packaging/PackagesRepository.cs b/src/Umbraco.Core/Packaging/PackagesRepository.cs index 76d8b75ba8..2ab24fa593 100644 --- a/src/Umbraco.Core/Packaging/PackagesRepository.cs +++ b/src/Umbraco.Core/Packaging/PackagesRepository.cs @@ -68,7 +68,7 @@ namespace Umbraco.Cms.Core.Packaging ILocalizationService languageService, IHostingEnvironment hostingEnvironment, IEntityXmlSerializer serializer, - IOptionsMonitor globalSettings, + IOptions globalSettings, IMediaService mediaService, IMediaTypeService mediaTypeService, MediaFileManager mediaFileManager, @@ -92,7 +92,7 @@ namespace Umbraco.Cms.Core.Packaging _tempFolderPath = tempFolderPath ?? Constants.SystemDirectories.TempData.EnsureEndsWith('/') + "PackageFiles"; _packagesFolderPath = packagesFolderPath ?? Constants.SystemDirectories.Packages; - _mediaFolderPath = mediaFolderPath ?? globalSettings.CurrentValue.UmbracoMediaPath + "/created-packages"; + _mediaFolderPath = mediaFolderPath ?? globalSettings.Value.UmbracoMediaPath + "/created-packages"; _parser = new PackageDefinitionXmlParser(); _mediaService = mediaService; diff --git a/src/Umbraco.Core/Routing/UrlProvider.cs b/src/Umbraco.Core/Routing/UrlProvider.cs index 6552449b9c..5d43dedc3d 100644 --- a/src/Umbraco.Core/Routing/UrlProvider.cs +++ b/src/Umbraco.Core/Routing/UrlProvider.cs @@ -25,13 +25,14 @@ namespace Umbraco.Cms.Core.Routing /// The list of media URL providers. /// The current variation accessor. /// - public UrlProvider(IUmbracoContextAccessor umbracoContextAccessor, IOptionsMonitor routingSettings, UrlProviderCollection urlProviders, MediaUrlProviderCollection mediaUrlProviders, IVariationContextAccessor variationContextAccessor) + public UrlProvider(IUmbracoContextAccessor umbracoContextAccessor, IOptions routingSettings, UrlProviderCollection urlProviders, MediaUrlProviderCollection mediaUrlProviders, IVariationContextAccessor variationContextAccessor) { _umbracoContextAccessor = umbracoContextAccessor ?? throw new ArgumentNullException(nameof(umbracoContextAccessor)); _urlProviders = urlProviders; _mediaUrlProviders = mediaUrlProviders; _variationContextAccessor = variationContextAccessor ?? throw new ArgumentNullException(nameof(variationContextAccessor)); - Mode = routingSettings.CurrentValue.UrlProviderMode; + Mode = routingSettings.Value.UrlProviderMode; + } private readonly IUmbracoContextAccessor _umbracoContextAccessor; diff --git a/src/Umbraco.Core/Runtime/EssentialDirectoryCreator.cs b/src/Umbraco.Core/Runtime/EssentialDirectoryCreator.cs index 42d041211d..a9564712c3 100644 --- a/src/Umbraco.Core/Runtime/EssentialDirectoryCreator.cs +++ b/src/Umbraco.Core/Runtime/EssentialDirectoryCreator.cs @@ -13,11 +13,11 @@ namespace Umbraco.Cms.Core.Runtime private readonly IHostingEnvironment _hostingEnvironment; private readonly GlobalSettings _globalSettings; - public EssentialDirectoryCreator(IIOHelper ioHelper, IHostingEnvironment hostingEnvironment, IOptionsMonitor globalSettings) + public EssentialDirectoryCreator(IIOHelper ioHelper, IHostingEnvironment hostingEnvironment, IOptions globalSettings) { _ioHelper = ioHelper; _hostingEnvironment = hostingEnvironment; - _globalSettings = globalSettings.CurrentValue; + _globalSettings = globalSettings.Value; } public void Handle(UmbracoApplicationStartingNotification notification) diff --git a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs index 10aba830b4..861a05b459 100644 --- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs +++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs @@ -92,7 +92,7 @@ namespace Umbraco.Cms.Infrastructure.DependencyInjection factory.GetRequiredService(), factory.GetRequiredService(), factory.GetRequiredService(), - factory.GetRequiredService>(), + factory.GetRequiredService>(), factory.GetRequiredService(), factory.GetRequiredService(), factory.GetRequiredService(), diff --git a/src/Umbraco.Infrastructure/HostedServices/HealthCheckNotifier.cs b/src/Umbraco.Infrastructure/HostedServices/HealthCheckNotifier.cs index 39b49c2a91..6a0828fad3 100644 --- a/src/Umbraco.Infrastructure/HostedServices/HealthCheckNotifier.cs +++ b/src/Umbraco.Infrastructure/HostedServices/HealthCheckNotifier.cs @@ -26,7 +26,7 @@ namespace Umbraco.Cms.Infrastructure.HostedServices /// public class HealthCheckNotifier : RecurringHostedServiceBase { - private HealthChecksSettings _healthChecksSettings; + private readonly HealthChecksSettings _healthChecksSettings; private readonly HealthCheckCollection _healthChecks; private readonly HealthCheckNotificationMethodCollection _notifications; private readonly IRuntimeState _runtimeState; @@ -50,7 +50,7 @@ namespace Umbraco.Cms.Infrastructure.HostedServices /// The profiling logger. /// Parser of crontab expressions. public HealthCheckNotifier( - IOptionsMonitor healthChecksSettings, + IOptions healthChecksSettings, HealthCheckCollection healthChecks, HealthCheckNotificationMethodCollection notifications, IRuntimeState runtimeState, @@ -61,10 +61,10 @@ namespace Umbraco.Cms.Infrastructure.HostedServices IProfilingLogger profilingLogger, ICronTabParser cronTabParser) : base( - healthChecksSettings.CurrentValue.Notification.Period, - healthChecksSettings.CurrentValue.GetNotificationDelay(cronTabParser, DateTime.Now, DefaultDelay)) + healthChecksSettings.Value.Notification.Period, + healthChecksSettings.Value.GetNotificationDelay(cronTabParser, DateTime.Now, DefaultDelay)) { - _healthChecksSettings = healthChecksSettings.CurrentValue; + _healthChecksSettings = healthChecksSettings.Value; _healthChecks = healthChecks; _notifications = notifications; _runtimeState = runtimeState; @@ -73,7 +73,6 @@ namespace Umbraco.Cms.Infrastructure.HostedServices _scopeProvider = scopeProvider; _logger = logger; _profilingLogger = profilingLogger; - healthChecksSettings.OnChange(x => _healthChecksSettings = x); } public override async Task PerformExecuteAsync(object state) diff --git a/src/Umbraco.Infrastructure/HostedServices/ServerRegistration/TouchServerTask.cs b/src/Umbraco.Infrastructure/HostedServices/ServerRegistration/TouchServerTask.cs index f68f187233..a37216fbbd 100644 --- a/src/Umbraco.Infrastructure/HostedServices/ServerRegistration/TouchServerTask.cs +++ b/src/Umbraco.Infrastructure/HostedServices/ServerRegistration/TouchServerTask.cs @@ -22,7 +22,7 @@ namespace Umbraco.Cms.Infrastructure.HostedServices.ServerRegistration private readonly IServerRegistrationService _serverRegistrationService; private readonly IHostingEnvironment _hostingEnvironment; private readonly ILogger _logger; - private GlobalSettings _globalSettings; + private readonly GlobalSettings _globalSettings; /// /// Initializes a new instance of the class. @@ -37,15 +37,14 @@ namespace Umbraco.Cms.Infrastructure.HostedServices.ServerRegistration IServerRegistrationService serverRegistrationService, IHostingEnvironment hostingEnvironment, ILogger logger, - IOptionsMonitor globalSettings) - : base(globalSettings.CurrentValue.DatabaseServerRegistrar.WaitTimeBetweenCalls, TimeSpan.FromSeconds(15)) + IOptionsSnapshot globalSettings) + : base(globalSettings.Value.DatabaseServerRegistrar.WaitTimeBetweenCalls, TimeSpan.FromSeconds(15)) { _runtimeState = runtimeState; _serverRegistrationService = serverRegistrationService ?? throw new ArgumentNullException(nameof(serverRegistrationService)); _hostingEnvironment = hostingEnvironment; _logger = logger; - _globalSettings = globalSettings.CurrentValue; - globalSettings.OnChange(x => _globalSettings = x); + _globalSettings = globalSettings.Value; } public override Task PerformExecuteAsync(object state) diff --git a/src/Umbraco.Infrastructure/Security/BackOfficeUserStore.cs b/src/Umbraco.Infrastructure/Security/BackOfficeUserStore.cs index 47e849dea9..a3080570b7 100644 --- a/src/Umbraco.Infrastructure/Security/BackOfficeUserStore.cs +++ b/src/Umbraco.Infrastructure/Security/BackOfficeUserStore.cs @@ -30,7 +30,7 @@ namespace Umbraco.Cms.Core.Security private readonly IUserService _userService; private readonly IEntityService _entityService; private readonly IExternalLoginService _externalLoginService; - private GlobalSettings _globalSettings; + private readonly GlobalSettings _globalSettings; private readonly IUmbracoMapper _mapper; private readonly AppCaches _appCaches; @@ -42,7 +42,7 @@ namespace Umbraco.Cms.Core.Security IUserService userService, IEntityService entityService, IExternalLoginService externalLoginService, - IOptionsMonitor globalSettings, + IOptionsSnapshot globalSettings, IUmbracoMapper mapper, BackOfficeErrorDescriber describer, AppCaches appCaches) @@ -52,13 +52,11 @@ namespace Umbraco.Cms.Core.Security _userService = userService ?? throw new ArgumentNullException(nameof(userService)); _entityService = entityService; _externalLoginService = externalLoginService ?? throw new ArgumentNullException(nameof(externalLoginService)); - _globalSettings = globalSettings.CurrentValue; + _globalSettings = globalSettings.Value; _mapper = mapper; _appCaches = appCaches; _userService = userService; _externalLoginService = externalLoginService; - - globalSettings.OnChange(x => _globalSettings = x); } /// diff --git a/src/Umbraco.Infrastructure/Security/IdentityMapDefinition.cs b/src/Umbraco.Infrastructure/Security/IdentityMapDefinition.cs index e9645fa24a..5ed7e2635b 100644 --- a/src/Umbraco.Infrastructure/Security/IdentityMapDefinition.cs +++ b/src/Umbraco.Infrastructure/Security/IdentityMapDefinition.cs @@ -23,15 +23,13 @@ namespace Umbraco.Cms.Core.Security public IdentityMapDefinition( ILocalizedTextService textService, IEntityService entityService, - IOptionsMonitor globalSettings, + IOptionsSnapshot globalSettings, AppCaches appCaches) { _textService = textService; _entityService = entityService; - _globalSettings = globalSettings.CurrentValue; + _globalSettings = globalSettings.Value; _appCaches = appCaches; - - globalSettings.OnChange(x => _globalSettings = x); } public void DefineMaps(IUmbracoMapper mapper) diff --git a/src/Umbraco.Infrastructure/Security/UmbracoUserManager.cs b/src/Umbraco.Infrastructure/Security/UmbracoUserManager.cs index dda9f854f2..81db3fcec5 100644 --- a/src/Umbraco.Infrastructure/Security/UmbracoUserManager.cs +++ b/src/Umbraco.Infrastructure/Security/UmbracoUserManager.cs @@ -35,12 +35,11 @@ namespace Umbraco.Cms.Core.Security IdentityErrorDescriber errors, IServiceProvider services, ILogger> logger, - IOptionsMonitor passwordConfiguration) + IOptionsSnapshot passwordConfiguration) : base(store, optionsAccessor, passwordHasher, userValidators, passwordValidators, new NoopLookupNormalizer(), errors, services, logger) { IpResolver = ipResolver ?? throw new ArgumentNullException(nameof(ipResolver)); - PasswordConfiguration = passwordConfiguration.CurrentValue ?? throw new ArgumentNullException(nameof(passwordConfiguration)); - passwordConfiguration.OnChange(x => PasswordConfiguration = x); + PasswordConfiguration = passwordConfiguration.Value ?? throw new ArgumentNullException(nameof(passwordConfiguration)); } /// diff --git a/src/Umbraco.Tests.Integration/Umbraco.Core/Packaging/CreatedPackagesRepositoryTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Core/Packaging/CreatedPackagesRepositoryTests.cs index 2cbf5a6f82..bceb8e4013 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Core/Packaging/CreatedPackagesRepositoryTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Core/Packaging/CreatedPackagesRepositoryTests.cs @@ -70,7 +70,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Core.Packaging LocalizationService, HostingEnvironment, EntityXmlSerializer, - new TestOptionsMonitor(new GlobalSettings()), + Microsoft.Extensions.Options.Options.Create(new GlobalSettings()), MediaService, MediaTypeService, MediaFileManager, diff --git a/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Security/BackOfficeUserStoreTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Security/BackOfficeUserStoreTests.cs index 01a6db0a8e..ab5ed1dcfc 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Security/BackOfficeUserStoreTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Security/BackOfficeUserStoreTests.cs @@ -34,7 +34,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Security UserService, EntityService, ExternalLoginService, - new TestOptionsMonitor(GlobalSettings), + new TestOptionsSnapshot(GlobalSettings), UmbracoMapper, new BackOfficeErrorDescriber(TextService), AppCaches); diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlImageSourceParserTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlImageSourceParserTests.cs index 16422fbcd2..4d0e643d7f 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlImageSourceParserTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlImageSourceParserTests.cs @@ -81,7 +81,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Templates var webRoutingSettings = new WebRoutingSettings(); var publishedUrlProvider = new UrlProvider( umbracoContextAccessor, - new TestOptionsMonitor(webRoutingSettings), + Options.Create(webRoutingSettings), new UrlProviderCollection(() => Enumerable.Empty()), new MediaUrlProviderCollection(() => new[] { mediaUrlProvider.Object }), Mock.Of()); diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlLocalLinkParserTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlLocalLinkParserTests.cs index 51ed3a22d5..d171342023 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlLocalLinkParserTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Templates/HtmlLocalLinkParserTests.cs @@ -79,7 +79,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Templates var webRoutingSettings = new WebRoutingSettings(); var publishedUrlProvider = new UrlProvider( umbracoContextAccessor, - new TestOptionsMonitor(webRoutingSettings), + Options.Create(webRoutingSettings), new UrlProviderCollection(() => new[] { contentUrlProvider.Object }), new MediaUrlProviderCollection(() => new[] { mediaUrlProvider.Object }), Mock.Of()); diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/HealthCheckNotifierTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/HealthCheckNotifierTests.cs index b6f94c17a8..bc222f969c 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/HealthCheckNotifierTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/HealthCheckNotifierTests.cs @@ -150,7 +150,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.HostedServices var mockProfilingLogger = new Mock(); return new HealthCheckNotifier( - new TestOptionsMonitor(settings), + Options.Create(settings), checks, notifications, mockRunTimeState.Object, diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/ServerRegistration/TouchServerTaskTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/ServerRegistration/TouchServerTaskTests.cs index 793acdfa3e..da8ef3d5fa 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/ServerRegistration/TouchServerTaskTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/HostedServices/ServerRegistration/TouchServerTaskTests.cs @@ -77,7 +77,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.HostedServices.Serv _mockServerRegistrationService.Object, mockRequestAccessor.Object, mockLogger.Object, - new TestOptionsMonitor(settings)); + new TestOptionsSnapshot(settings)); } private void VerifyServerNotTouched() => VerifyServerTouchedTimes(Times.Never()); diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberManagerTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberManagerTests.cs index fcb8a765f6..f3edb0b8c5 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberManagerTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Security/MemberManagerTests.cs @@ -32,7 +32,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security private Mock> _mockPasswordHasher; private Mock _mockMemberService; private Mock _mockServiceProviders; - private Mock> _mockPasswordConfiguration; + private Mock> _mockPasswordConfiguration; public MemberManager CreateSut() { @@ -44,7 +44,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security new IdentityMapDefinition( Mock.Of(), Mock.Of(), - new TestOptionsMonitor(new GlobalSettings()), + new TestOptionsSnapshot(new GlobalSettings()), AppCaches.Disabled), }; @@ -65,8 +65,8 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security userValidators.Add(validator.Object); _mockServiceProviders = new Mock(); - _mockPasswordConfiguration = new Mock>(); - _mockPasswordConfiguration.Setup(x => x.CurrentValue).Returns(() => + _mockPasswordConfiguration = new Mock>(); + _mockPasswordConfiguration.Setup(x => x.Value).Returns(() => new MemberPasswordConfigurationSettings() { diff --git a/src/Umbraco.Web.Common/Filters/AngularJsonOnlyConfigurationAttribute.cs b/src/Umbraco.Web.Common/Filters/AngularJsonOnlyConfigurationAttribute.cs index 99fcfd4f2c..a12dfa3080 100644 --- a/src/Umbraco.Web.Common/Filters/AngularJsonOnlyConfigurationAttribute.cs +++ b/src/Umbraco.Web.Common/Filters/AngularJsonOnlyConfigurationAttribute.cs @@ -24,11 +24,10 @@ namespace Umbraco.Cms.Web.Common.Filters private readonly ArrayPool _arrayPool; private MvcOptions _options; - public AngularJsonOnlyConfigurationFilter(ArrayPool arrayPool, IOptionsMonitor options) + public AngularJsonOnlyConfigurationFilter(ArrayPool arrayPool, IOptionsSnapshot options) { _arrayPool = arrayPool; - _options = options.CurrentValue; - options.OnChange(x => _options = x); + _options = options.Value; } public void OnResultExecuted(ResultExecutedContext context) diff --git a/src/Umbraco.Web.Common/Localization/UmbracoRequestLocalizationOptions.cs b/src/Umbraco.Web.Common/Localization/UmbracoRequestLocalizationOptions.cs index aa128629b0..f2262641ac 100644 --- a/src/Umbraco.Web.Common/Localization/UmbracoRequestLocalizationOptions.cs +++ b/src/Umbraco.Web.Common/Localization/UmbracoRequestLocalizationOptions.cs @@ -16,10 +16,9 @@ namespace Umbraco.Cms.Web.Common.Localization /// /// Initializes a new instance of the class. /// - public UmbracoRequestLocalizationOptions(IOptionsMonitor globalSettings) + public UmbracoRequestLocalizationOptions(IOptionsSnapshot globalSettings) { - _globalSettings = globalSettings.CurrentValue; - globalSettings.OnChange(x => _globalSettings = x); + _globalSettings = globalSettings.Value; } /// diff --git a/src/Umbraco.Web.Common/Security/BackOfficeUserManager.cs b/src/Umbraco.Web.Common/Security/BackOfficeUserManager.cs index 0f3d6f6784..22226cccf9 100644 --- a/src/Umbraco.Web.Common/Security/BackOfficeUserManager.cs +++ b/src/Umbraco.Web.Common/Security/BackOfficeUserManager.cs @@ -34,7 +34,7 @@ namespace Umbraco.Cms.Web.Common.Security IServiceProvider services, IHttpContextAccessor httpContextAccessor, ILogger> logger, - IOptionsMonitor passwordConfiguration, + IOptionsSnapshot passwordConfiguration, IEventAggregator eventAggregator, IBackOfficeUserPasswordChecker backOfficeUserPasswordChecker) : base(ipResolver, store, optionsAccessor, passwordHasher, userValidators, passwordValidators, errors, services, logger, passwordConfiguration) diff --git a/src/Umbraco.Web.Common/Security/MemberManager.cs b/src/Umbraco.Web.Common/Security/MemberManager.cs index 1962af8d19..52bfd6a58b 100644 --- a/src/Umbraco.Web.Common/Security/MemberManager.cs +++ b/src/Umbraco.Web.Common/Security/MemberManager.cs @@ -34,7 +34,7 @@ namespace Umbraco.Cms.Web.Common.Security IdentityErrorDescriber errors, IServiceProvider services, ILogger> logger, - IOptionsMonitor passwordConfiguration, + IOptionsSnapshot passwordConfiguration, IPublicAccessService publicAccessService, IHttpContextAccessor httpContextAccessor) : base(ipResolver, store, optionsAccessor, passwordHasher, userValidators, passwordValidators, errors,