diff --git a/src/Umbraco.Core/Security/MembershipProviderExtensions.cs b/src/Umbraco.Core/Security/MembershipProviderExtensions.cs index 3e8fa1a568..68505e5669 100644 --- a/src/Umbraco.Core/Security/MembershipProviderExtensions.cs +++ b/src/Umbraco.Core/Security/MembershipProviderExtensions.cs @@ -65,7 +65,9 @@ namespace Umbraco.Core.Security public static MembershipUser GetCurrentUser(this MembershipProvider membershipProvider) { var username = membershipProvider.GetCurrentUserName(); - return membershipProvider.GetUser(username, true); + return username.IsNullOrWhiteSpace() + ? null + : membershipProvider.GetUser(username, true); } /// @@ -78,7 +80,7 @@ namespace Umbraco.Core.Security if (HostingEnvironment.IsHosted) { HttpContext current = HttpContext.Current; - if (current != null) + if (current != null && current.User != null && current.User.Identity != null) return current.User.Identity.Name; } IPrincipal currentPrincipal = Thread.CurrentPrincipal; diff --git a/src/Umbraco.Web/umbraco.presentation/macro.cs b/src/Umbraco.Web/umbraco.presentation/macro.cs index 8e4e52e1dc..cacf2a13e3 100644 --- a/src/Umbraco.Web/umbraco.presentation/macro.cs +++ b/src/Umbraco.Web/umbraco.presentation/macro.cs @@ -228,8 +228,17 @@ namespace umbraco if (CacheByPersonalization) { - int currentMember = Member.CurrentMemberId(); - id.AppendFormat("m{0}-", currentMember); + object memberId = 0; + if (HttpContext.Current.User.Identity.IsAuthenticated) + { + var provider = Umbraco.Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider(); + var member = Umbraco.Core.Security.MembershipProviderExtensions.GetCurrentUser(provider); + if (member != null) + { + memberId = member.ProviderUserKey ?? 0; + } + } + id.AppendFormat("m{0}-", memberId); } foreach (var prop in model.Properties)