public FindPrincipal ( string principalAccountName ) : |
||
principalAccountName | string | |
return |
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; }
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); }
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)); }