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); }