diff --git a/src/Umbraco.Core/Security/MembershipProviderBase.cs b/src/Umbraco.Core/Security/MembershipProviderBase.cs index efee6f4893..4d4dad3fe8 100644 --- a/src/Umbraco.Core/Security/MembershipProviderBase.cs +++ b/src/Umbraco.Core/Security/MembershipProviderBase.cs @@ -521,7 +521,9 @@ namespace Umbraco.Core.Security public override string ResetPassword(string username, string answer) { - var canReset = this.CanResetPassword(ApplicationContext.Current.Services.UserService); + var userService = ApplicationContext.Current == null ? null : ApplicationContext.Current.Services.UserService; + + var canReset = this.CanResetPassword(userService); if (canReset == false) { diff --git a/src/Umbraco.Core/Security/MembershipProviderExtensions.cs b/src/Umbraco.Core/Security/MembershipProviderExtensions.cs index ebd42bd781..645de22ab8 100644 --- a/src/Umbraco.Core/Security/MembershipProviderExtensions.cs +++ b/src/Umbraco.Core/Security/MembershipProviderExtensions.cs @@ -26,10 +26,11 @@ namespace Umbraco.Core.Security internal static bool CanResetPassword(this MembershipProvider provider, IUserService userService) { if (provider == null) throw new ArgumentNullException("provider"); - if (userService == null) throw new ArgumentNullException("userService"); - + var canReset = provider.EnablePasswordReset; + if (userService == null) return canReset; + //we need to check for the special case in which a user is an admin - in which acse they can reset the password even if EnablePasswordReset == false if (provider.EnablePasswordReset == false) {