diff --git a/umbraco/cms/businesslogic/member/Member.cs b/umbraco/cms/businesslogic/member/Member.cs index bfc4784fe6..2ba122fe39 100644 --- a/umbraco/cms/businesslogic/member/Member.cs +++ b/umbraco/cms/businesslogic/member/Member.cs @@ -218,7 +218,7 @@ namespace umbraco.cms.businesslogic.member // Test for e-mail if (Email != "" && Member.GetMemberFromEmail(Email) != null) throw new Exception(String.Format("Duplicate Email! A member with the e-mail {0} already exists", Email)); - else if (Member.GetMemberFromLoginName(LoginName) != null) + else if (Member.GetMemberFromLoginName(loginName) != null) throw new Exception(String.Format("Duplicate User name! A member with the user name {0} already exists", Name)); Guid newId = Guid.NewGuid(); @@ -756,11 +756,13 @@ namespace umbraco.cms.businesslogic.member // zb-00035 #29931 : helper methods to handle member state + [Obsolete("Only use .NET Membership APIs to handle state now", true)] static void SetMemberState(Member member) { SetMemberState(member.Id, member.UniqueId, member.LoginName); } + [Obsolete("Only use .NET Membership APIs to handle state now", true)] static void SetMemberState(int memberId, Guid memberGuid, string memberLogin) { string value = string.Format("{0}+{1}+{2}", memberId, memberGuid, memberLogin); @@ -768,11 +770,13 @@ namespace umbraco.cms.businesslogic.member StateHelper.Cookies.Member.SetValue(value); } + [Obsolete("Only use .NET Membership APIs to handle state now", true)] static void SetMemberState(Member member, bool useSession, double cookieDays) { SetMemberState(member.Id, member.UniqueId, member.LoginName, useSession, cookieDays); } + [Obsolete("Only use .NET Membership APIs to handle state now", true)] static void SetMemberState(int memberId, Guid memberGuid, string memberLogin, bool useSession, double cookieDays) { string value = string.Format("{0}+{1}+{2}", memberId, memberGuid, memberLogin); @@ -784,6 +788,7 @@ namespace umbraco.cms.businesslogic.member StateHelper.Cookies.Member.SetValue(value, cookieDays); } + [Obsolete("Only use .NET Membership APIs to handle state now", true)] static void ClearMemberState() { // zb-00004 #29956 : refactor cookies names & handling @@ -791,6 +796,7 @@ namespace umbraco.cms.businesslogic.member FormsAuthentication.SignOut(); } + [Obsolete("Only use .NET Membership APIs to handle state now", true)] static MemberState GetMemberState() { // NH: Refactor to fix issue 30171, where auth using pure .NET Members doesn't clear old Umbraco cookie, thus this method gets the previous @@ -897,7 +903,10 @@ namespace umbraco.cms.businesslogic.member { // Add cookie with member-id, guid and loginname // zb-00035 #29931 : cleanup member state management - SetMemberState(m); + // NH 4.7.1: We'll no longer use legacy cookies to handle Umbraco Members + //SetMemberState(m); + + FormsAuthentication.SetAuthCookie(m.LoginName, true); //cache the member var cachedMember = Cache.GetCacheItem(GetCacheKey(m.Id), m_Locker, @@ -912,8 +921,6 @@ namespace umbraco.cms.businesslogic.member return m; }); - FormsAuthentication.SetAuthCookie(m.LoginName, true); - m.FireAfterAddToCache(e); } } @@ -943,7 +950,10 @@ namespace umbraco.cms.businesslogic.member if (!e.Cancel) { // zb-00035 #29931 : cleanup member state management - SetMemberState(m, UseSession, TimespanForCookie.TotalDays); + // NH 4.7.1: We'll no longer use Umbraco legacy cookies to handle members + //SetMemberState(m, UseSession, TimespanForCookie.TotalDays); + + FormsAuthentication.SetAuthCookie(m.LoginName, !UseSession); //cache the member var cachedMember = Cache.GetCacheItem(GetCacheKey(m.Id), m_Locker, @@ -959,7 +969,6 @@ namespace umbraco.cms.businesslogic.member }); - FormsAuthentication.SetAuthCookie(m.LoginName, false); m.FireAfterAddToCache(e); } @@ -1021,11 +1030,13 @@ namespace umbraco.cms.businesslogic.member public static void ClearMemberFromClient(int NodeId) { // zb-00035 #29931 : cleanup member state management - ClearMemberState(); - RemoveMemberFromCache(NodeId); - + // NH 4.7.1: We'll no longer use legacy Umbraco cookies to handle members + // ClearMemberState(); FormsAuthentication.SignOut(); + + RemoveMemberFromCache(NodeId); + } /// @@ -1123,6 +1134,9 @@ namespace umbraco.cms.businesslogic.member { int.TryParse(Membership.GetUser().ProviderUserKey.ToString(), out _currentMemberId); } + + // NH 4.7.1: We'll no longer use legacy Umbraco cookies to handle members + /* else { // zb-00035 #29931 : cleanup member state management @@ -1137,7 +1151,7 @@ namespace umbraco.cms.businesslogic.member // zb-00035 #29931 : cleanup member state management ClearMemberState(); } - + */ return _currentMemberId; } @@ -1152,7 +1166,7 @@ namespace umbraco.cms.businesslogic.member if (HttpContext.Current.User.Identity.IsAuthenticated) { // zb-00035 #29931 : cleanup member state management - MemberState ms = GetMemberState(); + /*MemberState ms = GetMemberState(); if (ms == null || ms.MemberId == 0) return null; @@ -1161,9 +1175,14 @@ namespace umbraco.cms.businesslogic.member Member member = GetMemberFromCache(ms.MemberId); if (member == null) member = new Member(ms.MemberId); + */ - if (HttpContext.Current.User.Identity.IsAuthenticated || (member.UniqueId == ms.MemberGuid && member.LoginName == ms.MemberLogin)) - return member; + int _currentMemberId = 0; + if (int.TryParse(Membership.GetUser().ProviderUserKey.ToString(), out _currentMemberId)) + { + Member m = new Member(_currentMemberId); + return m; + } } } catch