SirenOfShame.Lib.Services.ActiveDirectoryService.GetUserPicture C# (CSharp) Method

GetUserPicture() public method

public GetUserPicture ( string userName, string domain ) : Image
userName string
domain string
return Image
        public Image GetUserPicture(string userName, string domain)
        {
            var directoryEntry = new DirectoryEntry("LDAP://" + domain);
            var propertiesToLoad = new[] { "thumbnailPhoto", "samaccountname" };
            var filter = $"(&(SAMAccountName={userName}))";
            var directorySearcher = new DirectorySearcher(directoryEntry, filter, propertiesToLoad);
            var user = directorySearcher.FindOne();

            if (user == null)
            {
                _log.Warn($"Could not find user '{userName}' in active directory");
                return null;
            }

            if (!user.Properties.Contains("thumbnailPhoto"))
            {
                var message = "LDAP did not contain a thumbnailPhoto property for " + userName;
                _log.Warn(message);
                return null;
            }
            var bytes = user.Properties["thumbnailPhoto"][0] as byte[];
            if (bytes == null) return null;
            using (var ms = new MemoryStream(bytes))
            {
                var image = Image.FromStream(ms);
                return image;
            }
        }

Usage Example

Esempio n. 1
0
 private void ImportFromAd()
 {
     var activeDirectoryService = new ActiveDirectoryService();
     var avatarsFolder = SirenOfShameSettings.GetAvatarsFolder();
     foreach (var personSetting in _settings.People)
     {
         var picture = activeDirectoryService.GetUserPicture(personSetting.RawName, _activeDirectoryDomain.Text);
         var newFileName = Guid.NewGuid() + ".png";
         var combine = Path.Combine(avatarsFolder, newFileName);
         picture.Save(combine);
         personSetting.AvatarImageName = newFileName;
         personSetting.AvatarImageUploaded = false;
     }
     _settings.Save();
     _errorMessage.Visible = false;
 }
All Usage Examples Of SirenOfShame.Lib.Services.ActiveDirectoryService::GetUserPicture
ActiveDirectoryService