private THUMember CreateUserFromAttributes(string distinguishedName, LdapAttributeSet attributeSet)
        {
            var ldapUser = new THUMember
            {
                ObjectSid         = attributeSet.getAttribute("objectSid")?.StringValue,
                ObjectGuid        = attributeSet.getAttribute("objectGUID")?.StringValue,
                ObjectCategory    = attributeSet.getAttribute("objectCategory")?.StringValue,
                ObjectClass       = attributeSet.getAttribute("objectClass")?.StringValue,
                MemberOf          = attributeSet.getAttribute("memberOf")?.StringValueArray.ToList(),
                CommonName        = attributeSet.getAttribute("cn")?.StringValue,
                UserName          = attributeSet.getAttribute("name")?.StringValue,
                Name              = attributeSet.getAttribute("name")?.StringValue,
                DistinguishedName = attributeSet.getAttribute("distinguishedName")?.StringValue ?? distinguishedName,
                DisplayName       = attributeSet.getAttribute("displayName")?.StringValue,
                Email             = attributeSet.getAttribute("mail")?.StringValue
            };


            return(ldapUser);
        }
        public THUMember GetUserByUserName(string userName, string password)
        {
            THUMember user = null;

            var filter = $"(&(cn={userName}))";

            using (var ldapConnection = this.GetConnection(userName, password))
            {
                if (ldapConnection == null)
                {
                    return(null);
                }

                var search = ldapConnection.Search(
                    this._ldapSettings.SearchBase,
                    LdapConnection.SCOPE_SUB,
                    filter,
                    this._attributes,
                    false,
                    null,
                    null);

                LdapMessage message;

                while ((message = search.getResponse()) != null)
                {
                    if (!(message is LdapSearchResult searchResultMessage))
                    {
                        continue;
                    }

                    user = this.CreateUserFromAttributes(this._ldapSettings.SearchBase, searchResultMessage.Entry.getAttributeSet());
                }
            }

            return(user);
        }