Affecto.ActiveDirectoryService.Principal.FromDirectoryEntry C# (CSharp) Method

FromDirectoryEntry() public static method

public static FromDirectoryEntry ( System.DirectoryServices.DirectoryEntry directoryEntry, ICollection additionalPropertyNames = null ) : Principal
directoryEntry System.DirectoryServices.DirectoryEntry
additionalPropertyNames ICollection
return Principal
        public static Principal FromDirectoryEntry(DirectoryEntry directoryEntry, ICollection<string> additionalPropertyNames = null)
        {
            if (directoryEntry == null)
            {
                throw new ArgumentNullException("directoryEntry");
            }
            if (directoryEntry.Properties[ActiveDirectoryProperties.AccountName].Value == null)
            {
                throw new ActiveDirectoryException("Account name property not found in active directory entry.");
            }

            bool isGroup = directoryEntry.SchemaClassName == ActiveDirectoryProperties.AccountGroup;
            var principal = new Principal
            {
                AccountName = directoryEntry.Properties[ActiveDirectoryProperties.AccountName].Value.ToString(),
                NativeGuid = new Guid(directoryEntry.NativeGuid),
                DomainPath = directoryEntry.Path,
                IsGroup = isGroup,
                IsActive = isGroup || IsActiveUser(directoryEntry)
            };

            principal.DisplayName = GetDisplayName(directoryEntry) ?? principal.AccountName;
            principal.AdditionalProperties = GetAdditionalProperties(directoryEntry, additionalPropertyNames);
            principal.ChildDomainPaths = GetChildDomainPaths(directoryEntry);

            return principal;
        }

Usage Example

Beispiel #1
0
 private T MapToPrincipal <T>(SearchResult searchResult) where T : Principal
 {
     using (DirectoryEntry directoryEntry = searchResult.GetDirectoryEntry())
     {
         return(Principal.FromDirectoryEntry <T>(domainPath, directoryEntry, additionalPropertyNames));
     }
 }
All Usage Examples Of Affecto.ActiveDirectoryService.Principal::FromDirectoryEntry