FindPrincipal() public method

public FindPrincipal ( string principalAccountName ) : Principal
principalAccountName string
return Principal
 public virtual IPrincipal GetPrincipal(string accountName, ICollection<string> additionalPropertyNames = null)
 {
     using (DirectoryEntry domainEntry = new DirectoryEntry(domainPath.GetPathWithProtocol()))
     using (PrincipalSearcher searcher = new PrincipalSearcher(domainEntry, additionalPropertyNames))
     {
         return searcher.FindPrincipal(accountName);
     }
 }
        public virtual IReadOnlyCollection<IPrincipal> GetGroupMembers(string groupName, bool recursive, ICollection<string> additionalPropertyNames = null)
        {
            List<IPrincipal> result = new List<IPrincipal>();

            using (DirectoryEntry domainEntry = new DirectoryEntry(domainPath.GetPathWithProtocol()))
            using (PrincipalSearcher principalSearcher = new PrincipalSearcher(domainEntry))
            {
                Principal groupPrincipal = principalSearcher.FindPrincipal(groupName);
                result.AddRange(ResolveMembers(groupPrincipal, recursive, additionalPropertyNames));
            }

            return result;
        }
Beispiel #3
0
        public virtual IReadOnlyCollection <IPrincipal> GetGroupMembers(string groupName, bool recursive, ICollection <string> additionalPropertyNames = null)
        {
            List <IPrincipal> result = new List <IPrincipal>();

            foreach (DomainPath domainPath in domainPaths)
            {
                using (DirectoryEntry domainEntry = new DirectoryEntry(domainPath.GetPathWithProtocol()))
                    using (PrincipalSearcher principalSearcher = new PrincipalSearcher(domainPath, domainEntry))
                    {
                        GroupPrincipal groupPrincipal = principalSearcher.FindPrincipal <GroupPrincipal>(groupName);
                        result.AddRange(ResolveMembers(groupPrincipal, recursive, additionalPropertyNames));
                    }
            }

            return(result);
        }
Beispiel #4
0
        protected virtual T GetPrincipalInternal <T>(string accountName, ICollection <string> additionalPropertyNames = null) where T : Principal
        {
            string domain = GetDomain(accountName);

            foreach (DomainPath domainPath in domains.Where(o => domain == null || o.Value.Equals(domain, StringComparison.OrdinalIgnoreCase)).Select(o => o.Key))
            {
                using (DirectoryEntry domainEntry = new DirectoryEntry(domainPath.GetPathWithProtocol()))
                    using (PrincipalSearcher searcher = new PrincipalSearcher(domainPath, domainEntry, additionalPropertyNames))
                    {
                        try
                        {
                            return(searcher.FindPrincipal <T>(accountName));
                        }
                        catch (ActiveDirectoryException)
                        {
                        }
                    }
            }

            throw new ActiveDirectoryException(string.Format("Principal '{0}' not found in active directory.", accountName));
        }