diff --git a/src/Umbraco.Web/Trees/MemberTreeController.cs b/src/Umbraco.Web/Trees/MemberTreeController.cs index befeba81b2..af783b489b 100644 --- a/src/Umbraco.Web/Trees/MemberTreeController.cs +++ b/src/Umbraco.Web/Trees/MemberTreeController.cs @@ -60,7 +60,7 @@ namespace Umbraco.Web.Trees //get the members from the provider int total; nodes.AddRange( - Membership.Provider.FindUsersByName(id + "%", 0, 9999, out total).Cast() + FindUsersByName(char.Parse(id)).Cast() .Select(m => CreateTreeNode(GetNodeIdForCustomProvider(m.ProviderUserKey), id, queryStrings, m.UserName, "icon-user"))); } } @@ -75,6 +75,30 @@ namespace Umbraco.Web.Trees return nodes; } + /// + /// Allows for developers to override this in case their provider does some funky stuff to search + /// + /// + /// + /// + /// We're going to do a special check here - for active dir provider or sql provider + /// + protected virtual MembershipUserCollection FindUsersByName(char letter) + { + int total; + if (Membership.Provider is SqlMembershipProvider) + { + //this provider uses the % syntax + return Membership.Provider.FindUsersByName(letter + "%", 0, 9999, out total); + } + else + { + //the AD provider - and potentiall all other providers will use the asterisk syntax. + return Membership.Provider.FindUsersByName(letter + "*", 0, 9999, out total); + } + + } + /// /// We'll see if it is a GUID, if so we'll ensure to format it without hyphens ///